会话丢失了passport.js

时间:2013-10-13 14:25:38

标签: node.js express passport.js

我设法使用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');
    }
});

2 个答案:

答案 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);
});