4

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

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

我发现这里的另一个线程 Facebook 登录窗口出现并很快消失

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

4

2 回答 2

1

您可以使用 FB.getLoginStatus 检查用户的登录状态。

https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

如果用户未登录,您可以显示(自定义)登录按钮。

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

于 2014-09-04T15:42:10.820 回答