我的应用程序是一个使用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
。但是,由于req.user
不在请求中,所以我在/cms/users
处得到403。这让我觉得我的课程没有坚持下去,但我不是专家,也不知道下一步该怎么办。
我使用的是redistogo和mongolab,这两个配置都是使用CLI设置的。有什么建议吗?我被卡住了!谢谢
编辑:我应该补充一点,在我的本地机器上一切都很好。
文档是我应该开始的地方。
https://devcenter.heroku.com/articles/redistogo#using-带有节点js
我严格遵循了该网站上的每一个配置,然后调整了应用程序的配置顺序,直到它起作用。