为什么即使req.session.passport.user拥有所有内容,req.IsAuthenticated()仍返回false

时间:2018-10-28 21:35:47

标签: node.js express passport.js

嗨,我有以下代码。在完成req.login之后,req._passport在那里有了正确的信息。但是,在我的isAuthenticated函数内部调用res.redirect(“ / profile”)之后,req._passport是未定义的,但是req.session.passport.user具有正确的信息。我查看了req.isAuthentication方法,它正在寻找req._passport。为何在重定向后未定义req._passport以及为什么同时存在req._passportreq.session.passport?谢谢!

app.post('/signin', function (req, res, next) {
    passport.authenticate('local-signin', function (err, user, info) {
      ......
    req.login(user, function (err) {          
        console.log(req._passport); // Here req._passport is set.

        return res.redirect('/profile');
      });
    });
  })(req, res, next);
});



app.get('/profile', isAuthenticated, profile.index);

function isAuthenticated(req, res, next) {
    console.log(req.session.passport.user); // looks good

    console.log(req._passport) // undefined
     if (req.isAuthenticated()) {
        console.log("authenticated"); // Not reaching here
        return next();
     }
     console.log("not authenticated"); // reaching here
    res.redirect('/signin');
  }

0 个答案:

没有答案