当我在本地运行该应用程序时,会话正在运行。它序列化用户并反序列化用户。当我将其部署到heroku时,会话突然停止工作,序列化从未成功。我将console.logs放在各处进行测试。但是什么都没有出现:
passport.serializeUser((user, done) => { done(null, user.id) }
passport.deserializeUser((id, done) => {
User.findById(id).then(user => {done(null, user)});
}
passport.use('login', new LocalStrategy(
...
))
当地策略绝对有效。它登录并曾经将用户发送到客户端,以使用正确的身份验证来设置我的redux存储以访问该应用。但是,当我刷新页面时,该应用程序停止运行。那是我调试的时候,发现序列化和反序列化永远不会受到打击。
app.post('/api/login', passport.authenticate('login', { session: true }),
function (req, res) {
res.send({ id: req.user.id, username: req.user.username });
}
)
app.get('/api/current_user', function (req, res) {
res.send(req.user);
})
同样,登录有效...但是获取当前用户却不... 另外,我正在使用Cookie分析器,我认为它似乎确实可以正常工作...