我正在使用js sdk使用<fb:login-button></fb:login-button>
按钮
当我点击页面上的“登录”按钮时,弹出框会出现并快速消失。
我在这里找到了另一个帖子 Facebook login window appears and disappears very quickly
这解释说它发生是因为用户已经登录到facebook。我的问题是,我该如何解决这个问题? 如果他们已经登录到Facebook,我如何确保弹出窗口不会出现并消失?
答案 0 :(得分:1)
您可以使用FB.getLoginStatus检查用户的登录状态。
https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/
如果用户未登录,您可以显示(自定义)登录按钮。
答案 1 :(得分:0)
我想用实际代码补充FWrnr的答案,因为这确实非常有用。
解决方案是FB.getLoginStatus函数,他说:
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
window.location = //redirect to page with logged user (you have the response token in response)
} else {
//Show the login popup
FB.login(function(response) {
if (response.authResponse) {
window.location = //redirect to location after correct login
}
}, { scope: '<scopes>', state: '<state>' });
}
});
这样,如果用户“已连接”(已登录且已获得应用授权),则不会调用FB.login方法,因此登录窗口不会闪烁。在任何其他情况下,它将显示登录窗口,这是预期的结果。