我正在使用Facebook Javascript SDK对我网站上的用户进行身份验证。这是我的情况,我遇到了麻烦。
如果我在我的网站和Facebook上登录,那么我在Facebook上注销似乎FB.getLoginStatus
没有被调用。如果我点击我的登录按钮(即调用FB.login
),则firebug会抛出错误"FB.login() called when user is already connected."
除此之外,如果我尝试获取facebook用户,则不返回任何内容。
所以简而言之,我无法获得Facebook用户,但我也无法致电FB.login
,所以我什么都没有。
我在这里错过了什么吗?
答案 0 :(得分:0)
如果某人在facebook.com上结束他们的会话,他们在您网站上的会话仍然存在 - 但如果您尝试使用该会话获取或发布数据到Facebook,则可能会失败。如果有人从facebook.com退出facebook,你可以通过订阅auth.sessionChange或auth.logout来处理这个问题(https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/)
FB.Event.subscribe('auth.sessionChange', function(response) {
alert('The status of the session is: ' + response.status);
});
如果您发现有人在使用您的网站时直接退出了Facebook,您可以使用
从会话中注销FB.logout()
发生这种情况后,您的FB.login()将不再提供该错误。错误是说你正在尝试运行FB.login(),当你已经在该页面上有一个会话时(因为记住会话只在facebook.com上清除,而不是在你的网站上清除)