FB JS-SDK не может определить выход пользователя из FB напрямую

TL; DR Facebook javascript SDK не может определить точный статус входа пользователя, который непосредственно вышел из системы с facebook.com под ним.

Я разрабатываю приложение Facebook, используя javascript SDK для аутентификации. Я заметил, что когда пользователь выходит из Facebook напрямую (на facebook.com), SDK не может понять состояние входа пользователя на странице приложения. Я свел это к следующему простому тесту.

Авторизуйтесь на facebook.com в одной вкладке. На другой вкладке отобразите страницу приложения ниже (заменив MY_APP_ID соответствующим образом). Если вы вошли в facebook как пользователь, который никогда не давал разрешения этому приложению, нажмите «Войти» и предоставьте их. В любом случае вы должны увидеть несколько событий, указывающих на то, что вы вошли в систему.

Теперь, вернувшись на вкладку facebook.com, выйдите из facebook. Перейдите на вкладку приложения, нажмите все кнопки (кроме «Войти») и посмотрите вывод консоли браузера.

  • Когда вызывается FB.logout , ничего не происходит. Обратный вызов никогда не вызывается. В Chrome выдается следующая ошибка: «Небезопасная попытка JavaScript получить доступ к фрейму с URL-адресом http://my_app.com из фрейма с URL-адресом http://www.facebook.com/ . Домены, протоколы и порты должны совпадать. "

  • Когда FB.getLoginStatus вызывается, в ответе говорится «подключен» и есть объект authResponse. Однако это бесполезно, потому что теперь это неверно. Если вместо этого для параметра force передается значение true, то ничего не происходит (обратный вызов никогда не вызывается).

  • Когда вызывается FB.getAuthResponse , ничего не происходит (обратный вызов никогда не вызывается).

  • Ни одно из соответствующих событий не запускается во время любого из этих действий (то есть после выхода из facebook).

Проблема в том, что в таком случае, похоже, нет возможности законно определить статус входа пользователя из SDK. Или делаю глупость, хоть и свел к минимуму.

Моя конечная цель состоит в том, что я хочу иметь возможность делать что-то в этом случае, если пользователь нажимает мою кнопку выхода после того, как уже вышел из facebook. Но SDK не дает реальных средств для достижения этой цели.

Есть идеи или мысли? Кто-нибудь еще испытал это и нашел обходной путь? Спасибо!

Простая страница приложения:









Login

10
задан Steve A 22 October 2011 в 18:59
поделиться