Passport req.isAuthenticated()始终返回false,并且req.user()未定义

时间:2018-02-26 15:55:20

标签: node.js session passport.js session-cookies passport-facebook

我使用 passport-facebook express-session 来存储服务器端的用户会话。 会话存储在mongo中,并且cookie也在浏览器中设置,但 req.isAuthenticated()返回false, req.user()未定义。

passport.deserializeUser 也正常工作。

有关为何会发生这种情况的任何想法吗?

1 个答案:

答案 0 :(得分:0)

对我来说,这是一个CORS问题。尽管cookie已经通过护照在浏览器中正确设置,但是后来的axios请求没有将其发回。所以req.isAuthenticated()和req.user()都是不工作。

为了使其有效,我必须在客户端设置以下内容:

axios.defaults.withCredentials = true;

并在服务器端(NodeJS + express)跟随:

  app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "http://localhost:3000");
  res.header("Access-Control-Allow-Credentials",true);
  next();
});