护照(passport.js)会话丢失。

5

我成功使用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

不要手动设置用户 cookie,让 passport 为您完成

req.logIn(user, function(err) {
  if (err) { return next(err); }
  return res.redirect('/users/' + user.username);
});

请使用以下代码替换您的cookie行。

来源:http://passportjs.org/guide/authenticate/(请参见自定义回调部分)


0

您是否按照文档中的说明进行操作了呢?如果还没有,请尝试一下。

passport.serializeUser(function(user, done) {
    done(null, user);
});
passport.deserializeUser(function(user, done) {
    done(null, user);
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接