Facebook登录窗口出现又消失了。

4

我正在使用JS SDK通过 <fb:login-button></fb:login-button> 按钮进行登录。

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

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

该帖子解释了这是因为用户已经登录了Facebook。我的问题是,我该如何解决这个问题? 如果他们已经登录了Facebook,我该如何确保弹出框不会出现并消失?


我认为没有绕过的方法 - 它几乎无处不在。但是,我正在考虑使用弹出窗口(可能会使浏览器更加恼火)或隐藏的 iFrame(除非 Facebook 使用了框架破解程序,这很可能会发生)。 - John Dvorak
2个回答

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接