3

我的应用程序是使用 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 设置的。有什么建议么?我被困住了!谢谢。

编辑:我应该补充一点,在我的本地机器上一切正常。

4

1 回答 1

1

文档是我应该开始的地方。

https://devcenter.heroku.com/articles/redistogo#using-with-node-js

我严格按照该站点上的每个配置,然后调整应用程序配置顺序,直到它工作。

于 2013-06-27T20:21:12.280 回答