Node.js nodejs,passportjs本地策略未运行

Node.js nodejs,passportjs本地策略未运行,node.js,Node.js,我正在使用express和passport构建一个RESTAPI后端,似乎我的localStrategy没有被请求调用 var express = require('express'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var app = express(); var port = process.env.PORT

我正在使用express和passport构建一个RESTAPI后端,似乎我的localStrategy没有被请求调用

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

var port = process.env.PORT || 3000;



app.get('/', function(req, res) {

    res.render('index.ejs');

});

app.get('/login', function(req, res) {
    console.log('login /GET');
    res.render('login.ejs');
});

passport.use('local', new LocalStrategy({
    usernameField : 'username',
    passwordField : 'password'
},
    function(username, password, done) {
        console.log('local strategy');
        return done(null, {username : 'username'});

    }
));

app.post('/login', function(req, res, next){
    passport.authenticate('local', function(err, user, info) {
        console.log('auth run');

        if (err) {
            return next(err);
        }
        if (!user) {
            return res.redirect('/login');
        }
        req.logIn(user, function(err) {
            if (err) { return next(err); }
            return res.redirect('/users/' + user.username);
        });
    })(req, res, next);
});


app.listen(port);
console.log('listenting http://localhost:' + port);
我的登录请求在控制台中显示消息,但仅此而已


有什么想法吗?

你错过了一些东西

app.use(express.urlencoded());
app.use(passport.initialize());
您可能还需要处理序列化用户对象的问题