角色(Satellizer)和Facebook登录的CORS问题

时间:2016-04-13 12:21:44

标签: angularjs cors mean passport-facebook satellizer

这是我的第一个StackOverflow输入,所以请保持温和:p

我正在使用MEAN-stack进行Web应用程序,我遇到了一个我似乎无法修复的问题。尝试了我在网上找到的几种解决方案,但似乎没有任何效果。 我有这个Node / Express后端,它与facebook联系:

router.post('/login/facebook', passport.authenticate('facebook');

然后从Facebook收到回调:

router.get('/login/facebook/callback',
    passport.authenticate('facebook', { failureRedirect: '/#' }),
    function (req, res) {
        console.log("in facebook return!");
        console.log(req.user);
    });

我可以在我的console.log中看到我得到的数据是我所期待的!到目前为止一切都那么好..问题是,当我点击我的facebook登录按钮时,它会调用我的卫星facebook登录:

   $scope.authenticate = function(provider) {
        $auth.authenticate(provider).then(function(res){
            console.log(res.data);
        });
    };

..我在Chrome控制台中收到此消息:

XMLHttpRequest cannot load https://www.facebook.com/dialog/oauth?response_type=code&redirect_uri=..... No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:5000' is therefore not allowed access.

我想这是我监督过的东西,但是我无法弄清楚是什么..当我点击它尝试重定向到的链接时,我在终端的控制台中获取了我的信息。但我不能重新定向,因为它不被允许,显然......

有没有人知道解决方案可能是什么?我试着将它放入我的server.app:

app.use(function (req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE');
    res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
    next();
});

正如我希望的那样,我可以绕过原始政策,但它也没有用。

有什么建议吗? : - )

祝你好运!

0 个答案:

没有答案