在 Node 上收到关于护照的错误请求

Getting a Bad request on passport on Node

我正在尝试 运行 在 Node 上使用 passport 进行一些基本测试,当我尝试访问路由 localhost:3000/login 时,我收到错误请求 400。这是代码:

var express = require('express');
var app = express();
var jwt = require('jsonwebtoken');
var passport = require('passport');

var LocalStrategy = require('passport-local').Strategy;

passport.use(new LocalStrategy(
    function(username, password, done) {
        var user = {
            username: "name",
            password: "password123"
        }

    return done(null, user); 
    }
));




app.post('/login',
  passport.authenticate('local', {session: false}),
  function(req, res) {
    req.user.name = "Giuan";
    res.send(req.user.name);
    //res.redirect('/users/' + req.user.username);
  });

app.listen(3000, ()=>{
    console.log('Running on port 3000');
})

使用 app.use(passport.initialize()); 你还没有在你的代码中初始化 passport。

var express = require('express');
var app = express();
var jwt = require('jsonwebtoken');
var passport = require('passport');

var LocalStrategy = require('passport-local').Strategy;

passport.use(new LocalStrategy(
    function(username, password, done) {
        var user = {
            username: "name",
            password: "password123"
        }

    return done(null, user); 
    }
));


app.use(passport.initialize());

app.post('/login',
  passport.authenticate('local', {session: false}),
  function(req, res) {
    req.user.name = "Giuan";
    res.send(req.user.name);
    //res.redirect('/users/' + req.user.username);
  });

app.listen(3000, ()=>{
    console.log('Running on port 3000');
})

试试这个:

var express = require('express');
var app = express();
var jwt = require('jsonwebtoken');
var passport = require('passport');
var bodyParser = require('body-parser');

//if you are getting the info (username and password) through the body 
//of the http request you need to use body-parser
app.use(bodyParser());

var LocalStrategy = require('passport-local').Strategy;

passport.use(new LocalStrategy(
    function(username, password, done) {
        var user = {
            username: "name",
            password: "password123"
        }

    return done(null, user); 
    }
));


app.use(passport.initialize());

app.post('/login',
  passport.authenticate('local', {session: false}),
  function(req, res) {
    req.user.name = "Giuan";
    res.send(req.user.name);
    //res.redirect('/users/' + req.user.username);
  });

app.listen(3000, ()=>{
    console.log('Running on port 3000');
})