在这里,我无法让用户在用户按下我网站上的注销按钮后注销。他被重定向到登录页面,但updateButton函数被再次调用,他将再次登录。我尝试了几种方法,但问题依然存在。我想我不会在updateButton函数中正确地执行这些操作,而且FB.logout()没有正确完成,因为控制台中出现错误“调用FB.logout时没有访问令牌”。 的代码如下: -为什么这个Facebook的javascript-sdk登录代码会自动记录用户一次又一次?
$(function(){
var button;
window.fbAsyncInit = function(){
FB.init({ appId : 'myAppId',
status : true,
cookie : true,
xfbml : true,
oauth : true
});
function updateButton(response) {// I am not sure I am doing it right here
console.log("Update Button Fired.");
console.log(response);
button = document.getElementById('fb-auth');
if(response.status === 'connected')
{
FB.api('/me', function(info)
{
login(response,info);
});
}
else
{
FB.login(function(response)
{
if(response.status === 'not_authorized')
{
FB.api('/me', function(info){
login(response, info);
});
}
else
{
}
}, {scope:'email, user_birthday,user_about_me' });
}
}
}
FB.getLoginStatus(updateButton);
FB.Event.subscribe('auth.statusChange', updateButton);
};
(function() {
var e = document.createElement('script');
e.async = true;
e.type = 'text/javascript';
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
})();
function login(response,info){
console.log('login Showloader called');
if (response.authResponse) {
var accessToken = response.authResponse.accessToken;
$.post("/web/register/faceBookRegistration",{ data:info,accessTokenValue:accessToken}).done( function(data){
if(typeof(data) != undefined){
window.location = "/web/login/loadViewFaceLogin";
}
});
}
}
function logout(response){
FB.logout(function(response){
console.log("User is now logged out");
});
}
});
而且我觉得我的注销即
function logout(response){
FB.logout(function(response){
console.log("User is now logged out");
});
}
是不正确的。在控制台中,它显示FB.logout调用时没有访问令牌。可能是什么原因
感谢Alexis'ZeNy'Bize。我很高兴。 –
为什么你没有设置oauth:true在fb-init.js中 –
我从来没有使用oauth var,并没有在当前文档中看到它:https://developers.facebook.com/docs/reference/javascript/- 我认为现在是没用的了:)(也许我错了,但它没有像魅力一样)。不客气,无论如何你应该改进我的代码,例如,如果用户没有连接到Facebook,我忘记了这一点,FB.getLoginStatus将返回false;) –