我使用 passport-facebook 和 express-session 来存储服务器端的用户会话。 会话存储在mongo中,并且cookie也在浏览器中设置,但 req.isAuthenticated()返回false, req.user()未定义。
passport.deserializeUser 也正常工作。
有关为何会发生这种情况的任何想法吗?
答案 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();
});