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');
    }
});
4

2 回答 2

0

无需手动设置用户 cookie,而是让护照为您完成

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

用这个替换你的 cookie 行。

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

于 2013-10-13T16:26:08.093 回答
0

您是否按照文档中的说明进行操作,尝试(如果尚未完成)

passport.serializeUser(function(user, done) {
    done(null, user);
});
passport.deserializeUser(function(user, done) {
    done(null, user);
});
于 2013-10-15T06:47:24.597 回答