我设法使用passport.js
登录 app.post('/login', passport.authenticate('local'), function(req, res) {
res.cookie('username', req.user.username);
res.redirect('/');
});
但之后我的会话似乎丢失了。
app.post('/user/favorites', function(req, res) {
// `req.user` contains the authenticated user.
console.log(req.user); // Undefined
if(req.isAuthenticated()) { // false
console.log('HI');
}
});
答案 0 :(得分:0)
不要手动设置用户cookie,而是让护照为你做
req.logIn(user, function(err) {
if (err) { return next(err); }
return res.redirect('/users/' + user.username);
});
用此替换你的cookie行。
来源:http://passportjs.org/guide/authenticate/(参见自定义回调部分)
答案 1 :(得分:0)
您是否按照文档中的说明进行操作,尝试(如果尚未完成)
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(user, done) {
done(null, user);
});