用户通过Facebook JavaScript sdk登录,在注销后自动登录
我能够顺利地将该用户登录到我的网站,并从facebook获取他的详细信息,但我无法将其注销。用户通过Facebook JavaScript sdk登录,在注销后自动登录,facebook,jquery,facebook-javascript-sdk,Facebook,Jquery,Facebook Javascript Sdk,我能够顺利地将该用户登录到我的网站,并从facebook获取他的详细信息,但我无法将其注销。 在登录时,我将用户登录到成员的内部页面。在那里,他按下了我网站的注销按钮。在按下按钮时,他被送回头版,当然,头版会被重新加载 我猜登录的用户在按下注销按钮时会被重定向到首页。但登录事件会自动触发,他会再次登录 我正在使用以下代码 <script type="text/javascript"> $(function(){ var button; if(doc
在登录时,我将用户登录到成员的内部页面。在那里,他按下了我网站的注销按钮。在按下按钮时,他被送回头版,当然,头版会被重新加载 我猜登录的用户在按下注销按钮时会被重定向到首页。但登录事件会自动触发,他会再次登录 我正在使用以下代码
<script type="text/javascript">
$(function(){
var button;
if(document.cookie.indexOf("fbsr_myappid") > 0){// I am checking if the cookie value is set I am making status in FB.init() false.
var fb_status = false;
}
else{
var fb_status = true;
}
window.fbAsyncInit = function(){
FB.init({ appId : 'myappid',
status : fb_status,
cookie : true,
xfbml : true,
oauth : true
});
showLoader(true);
function updateButton(response) {
button = document.getElementById('fb-auth');
if(response.authResponse) {
FB.api('/me', function(info){
$.post("/web/register/faceBookRegistration",{data:info}).done(function(data){
if(typeof(data) != undefined){
window.location = "/web/login/loadFaceLogin"; // I am doing an ajax post to my login controller having loadFaceMember function.
}
});
login(response, info);
});
button.onclick = function(){
// I think I should use the folowing code somewhere else
FB.logout(function(response){
logout(response);
});
};
} else {
button.onclick = function(){
showLoader(true);
FB.login(function(response){
if(response.authResponse) {
FB.api('/me', function(info){
login(response, info);
});
} else {
showLoader(false);
}
}, {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){
if (response.authResponse) {
var accessToken = response.authResponse.accessToken;
showLoader(false);
}
}
function logout(response){
FB.logout(function(response){
console.log("User is now logged out.");
});
showLoader(false);
}
function showLoader(status){
if (status)
console.log("Yes showLoader.");
else
console.log("Yes dont showLoader.");
}
});
我想如果我能够将注销控制器中的上述函数与以下几行javascript代码链接起来
FB.logout(function(response){
logout(response);
}
我的工作会完成的
任何帮助都将不胜感激。是的,我的猜测是正确的。我需要修改我的注销功能。这是修改后的函数
function logout(response){
console.log("From logout" + response);
if(!response.authResponse){
window.location = "/web/login/";
return;
}
FB.logout(function(response){
FB.Auth.setAuthResponse(null,'unknown');
logout();
});
}
感谢@G W为我指明了正确的方向。
每个人都可以随意评论和改进它。我对此表示欢迎。我的方法基于此这发生在页面重新加载上?当单击“注销”正确时,页面不会自动重新加载?在登录时,我将用户登录到成员的内部页面。在那里,他按下了我网站的注销按钮。之后,他再次被带回到首页,因此,是的,你是正确的页面重新加载正在发生。我希望我已经传达了这个场景。我已经成功地使用这个注销功能注销了Facebook API。也许值得一试
function logout(){FB.logout(function(response){window.location.reload();});}
@G W.谢谢,我试过了,但我想我应该停止再次触发日志事件。我应该在检查的基础上设置一些条件来停止日志记录。
function logout(response){
console.log("From logout" + response);
if(!response.authResponse){
window.location = "/web/login/";
return;
}
FB.logout(function(response){
FB.Auth.setAuthResponse(null,'unknown');
logout();
});
}