2

我正在开发一个带有 Facebook 登录的 node.js 应用程序,我正在尝试使用 mocha 进行单元和集成测试。所以在一个函数中,我有这个代码来登录:

exports.loginFacebook = function (done){
request({uri:"https://graph.facebook.com//oauth/access_token?client_id={app-id}&client_secret={app-secret}&grant_type=client_credentials",
    method: "GET",
        timeout: reqOpts.timeout}, 
    function(err, res, body) {
    if(err){
        throw err;
    }
    else{
        uri2 = "https://graph.facebook.com/APP_ID/accounts/test-users?"+String(body);
        request({uri:uri2,
            method: "GET",
                timeout: reqOpts.timeout},
         function(err, res, body) {
            if(err){
                throw err;
            }
            else{
                login_url = JSON.parse(body).data[0].login_url
                console.log(login_url);
                request({uri:login_url,
                    method: "GET",
                    timeout: reqOpts.timeout},
                 function(err, res, body) {
                    if(err){
                        throw err;
                    }
                    else{
                          request('http://localhost:4004/auth/facebook', reqOpts, function(err, res, body2) {
                        //console.log(res.statusCode)
                        //console.log(err)
                        done()  
                      });   
                    }
                }); 
            }
        });
    }
});
};

基本上我调用 Facebook API 来获取访问令牌,然后列出我的测试用户,最后我使用第一个登录。问题:当我调用 login_url 时,Facebook 会重定向到这个网页:http://i.imgur.com/V6NzuMi.jpg “更新您的浏览器”),所以我无法正确登录。

任何想法如何解决这个问题?

谢谢!

4

0 回答 0