Facebook登录窗口出现并消失

时间:2013-01-17 22:20:00

标签: javascript facebook

我正在使用js sdk使用<fb:login-button></fb:login-button>按钮

登录

当我点击页面上的“登录”按钮时,弹出框会出现并快速消失。

我在这里找到了另一个帖子 Facebook login window appears and disappears very quickly

这解释说它发生是因为用户已经登录到facebook。我的问题是,我该如何解决这个问题? 如果他们已经登录到Facebook,我如何确保弹出窗口不会出现并消失?

2 个答案:

答案 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方法,因此登录窗口不会闪烁。在任何其他情况下,它将显示登录窗口,这是预期的结果。

相关问题