我是node.js的新手,特别是护照。 我已经在文件中公开了护照配置,如下所示:
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)
});
});
然而,我没有得到回应;你能否澄清一下我做错了什么。
答案 0 :(得分:0)
您需要返回 对象 已退回 passport.authenticate
app.post('/login',function(req, res, next){ console.log('loggin in ') /**/return passport.authenticate('local-login', function(err, user, info){ console.log('allo'); console.log(err); console.log(user); console.log(info) })(req, res, next); });