我尝试将护照与 expressjs 一起使用。passport.authenticate 函数中的 req.login 函数触发错误,我真的不知道我做错了什么。
passport.use(new LocalStrategy({ usernameField: 'email' }, function (username, password, done) {
userModel.findOne({ 'email': username }, function (err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false, { message: 'Unknown email adress ' + username }); }
user.comparePassword(password, function (err, isMatch) {
if (err) return done(err);
if (isMatch) {
return done(null, user);
} else {
return done(null, false, { message: 'Invalid password' });
}
});
});
}));
passport.authenticate('local', function (err, user, info) {
if (err) {
return res.send(401, "Invalid authentication");
}
if (!user) {
return res.send(401, info.message);
}
req.login(user, function (err) {
//console.log(user);
console.log(err);
if (err) {
return res.send(401, "Invalid authentication4");
}
return res.send(200, res);
});
})(req, res, next);
浏览器向我显示警报 Invalid authentication4,错误是在 req.login 函数中触发。在 shell console.log(err) 上,我有一条未定义的消息 [TypeError: Converting circular structure to JSON]