我正在开发一个带有 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 ( “更新您的浏览器”),所以我无法正确登录。
任何想法如何解决这个问题?
谢谢!