我有一台Express服务器使用Passport进行身份验证和React前端。
当我发布登录请求时,它有效; req.session控制台记录为:
cookie:
{ path: '/',
_expires: 2018-02-25T01:06:21.555Z,
originalMaxAge: 14400000,
httpOnly: true,
secure: false },
passport: { user: 'test' }

(' test'实际上是我用的用户名)。现在我只是尝试使用测试路由和简单的get请求来调试它:
fetch('/api/auth/test', { credentials: 'include' })

我登录日志req.session并且护照不见了:
cookie:
{ path: '/',
_expires: 2018-02-25T01:06:26.596Z,
originalMaxAge: 14400000,
httpOnly: true,
secure: false }

这是我的Passport代码:
在我的路线中:
authRoutes.post('/login', (req, res, next) => {
passport.authenticate('local', (err, user, info) => {
if (err) { return next(err); }
if (!user) { return res.json({ message: info }); }
req.logIn(user, (err) => {
if (err) { return next(err); }
return res.json({ message: 'ok', user: user.username });
});
})(req, res, next);
});

local.js:
const options = {};
init();
passport.use(
new LocalStrategy(options, (username, password, done) => {
User.findByUsername(username)
.then((user) => {
if (!user) {
return done(null, false, 'badUser');
}
if (!authHelpers.comparePass(password, user.password)) {
return done(null, false, 'badPw');
}
return done(null, user);
})
.catch(err => done(err));
})
);

我已经在这个问题上工作了好几个小时,无法解决这个问题。有什么想法吗?