Избегайте условий гонки в Facebook JavaScript API с помощью FB.logout - PullRequest
0 голосов
/ 01 октября 2010

Я отчаянно пытаюсь принудительно выйти из системы, прежде чем пользователь начнет новую сессию в Facebook. Но перед успешным вызовом выхода из системы, кажется, 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).

1 Ответ

2 голосов
/ 01 октября 2010

Нечто подобное может быть:

//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()
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...