Выйдя из Facebook, но он все еще распознает $ user - PullRequest
1 голос
/ 04 февраля 2012

Все, Я использую Facebook Connect (JS SDK) для аутентификации пользователя на моем сайте. Я проверяю, установлена ​​ли переменная сеанса вошедшего в систему на моем сайте, прежде чем нажать кнопку, чтобы проверить, вошел ли пользователь в Facebook. Это все прекрасно работает, однако, когда пользователь выходит из Facebook и выходит из моего сайта, и я пытаюсь вернуться к своему входу в систему, он все еще думает, что пользователь вошел в Facebook, хотя я знаю, что это не так. Как я могу предотвратить это? Я попытался установить autologoutlink = true на кнопку входа в систему, но она не работает.

Есть идеи?

Спасибо!

Ответы [ 4 ]

3 голосов
/ 05 сентября 2012

Решение, предоставленное @Madan, сработало для меня. Поскольку мое приложение основано на ajax, я не могу перезагрузить браузер. Я запускаю функцию обратного вызова setInterval () каждую минуту, чтобы проверить, вошел ли пользователь в Facebook.

setInterval(function (){
    FB.getLoginStatus(function(response){
        if(response.status ==='unknown' && FB_LOGIN==1){
            alert('Your Facebook session has been expired');
            member_logout();
        }
    }, true);
},60000);

это сработало как шарм.

2 голосов
/ 05 апреля 2012

Всегда указывайте второй параметр в FB.getLoginStatus (обратный вызов, true) как true ... это потому, что ответ Facebook кэшируется в SDK.Поэтому всегда используйте true param для проверки текущего сеанса пользователя.

1 голос
/ 04 февраля 2012

У меня всегда были отличные результаты при вызове FB.getLoginStatus () и перенаправлении пользователя на соответствующий контент, основанный на этих результатах. Три условия (хотя для приложения вторые два, на мой взгляд, совершенно одинаковы)

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

FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
    // the user is logged in and connected to your
    // app, and response.authResponse supplies
    // the user's ID, a valid access token, a signed
    // request, and the time the access token 
    // and signed request each expire
    var uid = response.authResponse.userID;
    var accessToken = response.authResponse.accessToken;
  } else if (response.status === 'not_authorized') {
    // the user is logged in to Facebook, 
    //but not connected to the app
  } else {
    // the user isn't even logged in to Facebook.
  }
 });
0 голосов
/ 10 мая 2013
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...