我的应用程序是使用 express 的 nodejs Web 应用程序。它用作带有 cms 和 api 的投资组合网站。
在我的登录路线中,我有以下代码:
passport.authenticate('local', function(err, user, info){
if(err){
return next(err);
} else if(!user){
res.format({
json: function(){
return error.throw403(req, res, next);
},
html: function(){
return res.redirect('/login');
}
});
} else {
console.log('login route, user');
console.log(user);
req.logIn(user, function(err){
if(err){
return next(err);
} else {
res.format({
json: function(){
return res.send(user);
},
html: function(){
return res.redirect('/cms/users');
}
});
}
});
}
})(req, res, next);
我的 heroku 日志告诉我用户已定义且正确。req.logIn()
触发,成功并重定向(应该)到/cms/users
. 但是,我得到一个 403,/cms/users
因为req.user
不在请求中。这让我觉得我的会话没有持续,但我不是专家,也不知道下一步该做什么。
我正在使用 redistogo 和 mongolab,这两个配置都是使用 CLI 设置的。有什么建议么?我被困住了!谢谢。
编辑:我应该补充一点,在我的本地机器上一切正常。