javascript - 使用 FB.logout 避免 Facebook JavaScript API 中的竞争条件

标签 javascript facebook race-condition

我正在拼命尝试在用户开始新的 Facebook session 之前强制注销。但在成功调用注销之前,auth.login 似乎登录了用户,并且我重定向了它们。所以这似乎是一个竞争条件,但我不知道如何绕过它。

FB.init({appId: xxxx, status: true, cookie: true, xfbml: true});

  //Try to log out user
  FB.logout();

            //Show the FB div
            if(FB) {
                FB.Event.subscribe('auth.logout', function(response) {
                    // do something with response
                    logout();
                });
                FB.getLoginStatus(function(response) {
                    if (response.session) {
                        login(response);
                    }
                });
                FB.Event.subscribe('auth.login', function(response) {
                    login(response);
                    //login redirects the user. Before logout fires()
                });

            } // end if(FB).

最佳答案

可能是这样的:

//initial login check
FB.getLoginStatus(function(response) {
    if (response.session) {
        //logged in, force logout
        FB.logout(function() {
          //logged out, subscribe to events
          loginEvents();
        });
    } else {
        //not logged in
        loginEvents();
    }
});

function loginEvents() {
    FB.Event.subscribe('auth.logout', function(response) {
        // do something with response
        logout();
    });

    FB.Event.subscribe('auth.login', function(response) {
        login(response);
        //login redirects the user. Before logout fires()
    });
}

关于javascript - 使用 FB.logout 避免 Facebook JavaScript API 中的竞争条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3836396/

相关文章:

Silverlight下Javascript调用C#函数

javascript - 使用 1 个 Angular cookie 个性化页面

Javascript - 使用 "IF"与 "SWITCH"将 toDateString 月份从文本字符串解析为数字字符串

Android:通过 Intent 共享文本和图像 (URL)

java - 如何轮询目录而不遇到文件传输竞争条件?

javascript - Discord.js:是否有一个函数可以检查用户是否具有排名数组中的排名

android - 图用户返回 Null,即使 session 已创建

php - 从个人网站发送 Facebook 消息 - 可能吗?

java - 原始数据类型在 Java 中是原子的

node.js - learnyounode #9 杂耍异步,官方解决方案会崩溃吗?