当试图通过everyauth获得更多FB特权时,请求松散

时间:2012-08-10 17:55:53

标签: facebook node.js express everyauth

我一直在用everyauth和Facebook进行用户身份验证,一切正常。现在,我想整合一种发布到Facebook的能力。由于我的应用程序仅在用户首次登录时询问电子邮件范围,因此我需要获得更大的FB范围,并且我正在尝试遵循FB准则并且仅在需要时请求此额外范围。

我根据文档将以下代码添加到myauth配置中:

everyauth
.facebook
    .appId(conf.fb.appId)
    .appSecret(conf.fb.appSecret)
    //TODO add custom redirect for when authentication is not approved
    .scope(function (req, res) {
        console.log('Setting FB scope');
        console.log('Session: ' + util.inspect(req.session));
        var session = req.session;
        switch (session.userPhase) {
            case 'share-media':
                return 'email,user_status';
            default:
                return 'email';
        }
     })

未经身份验证的用户登录应用程序时,一切都很顺利。问题是,当我想在FB范围内“提高赌注”时,我将req.session.userPhase设置为'share-media',然后提供指向/ auth / facebook的链接以确认他们想要允许张贴到FB。当发生这种情况时,我收到一个错误,上面的代码中没有定义req.session(所有req都是未定义的)。

我认为这是因为以前登录的用户基本上是重新进行身份验证,但这不是我如何从Facebook获得更多范围?我是以错误的方式解决这个问题吗?

感谢!!!

0 个答案:

没有答案