Node.js护照本地策略问题

node.js passport local strategy problems

本文关键字:策略 问题 js Node      更新时间:2023-09-26

我是node.js的新手,尤其是passport。我在一个文件中单独公开了一个护照配置,如下所示:

var LocalStrategy = require('passport-local').Strategy;
var User = require('../models/User');
var messages = {
    100: 'Username and/or password are not correct.',
    101: 'User already exists.'
};
module.exports = function (passport) {
passport.serializeUser(function (user, done) {
    done(null, user._id);
});
passport.deserializeUser(function (id, done) {
    User.findById(id, function (err, user) {
        done(err, user);
    });
});
passport.use('local-login', new LocalStrategy(function (username, password, done) {
    User.findOne({ username: username }, function (err, user) {
        if (err) {
            return done(err);
        }
        if (!user) {
            return done(null, false, req.flash('loginMessage', messages['100']));
        }
        user.comparePassword(password, function (err, isMatch) {
            if (err) {
                return done(err);
            }
            if (isMatch) {
                return done(null, user);
            } else {
                return done(null, false, req.flash('loginMessage', messages['100']));
            }
        });
    });
}));}
在我的节点路由

中,我正在做以下操作来处理登录场景:

app.post('/login',function(req, res, next){
    console.log('loggin in ')
    passport.authenticate('local-login', function(err, user, info){
        console.log('allo');
        console.log(err);
        console.log(user);
        console.log(info)
    });
});

但是我没有得到响应;

你需要返回对象返回passport.authenticate

<>之前App.post ('/login',function(req, res, next){Console.log (' login ')/* */返回护照。Authenticate ('local-login', function(err, user, info){console.log("喂");console.log(错);console.log(用户);console.log(信息)})(req, res, next);});