Почему событие auth.login facebook JS SDK срабатывает при загрузке страницы?

У меня возникли проблемы с работой с facebook JS SDK.

Обработчик событий auth.login срабатывает при каждой загрузке страницы, если пользователь вошел в Facebook и прошел аутентификацию в моем приложении.

Однако обработчик события auth.logout НЕ срабатывает при каждой загрузке страницы, если верно обратное (пользователь не вошел в систему или не прошел проверку подлинности).

кто-нибудь знает, почему это произошло?


person Casey Flynn    schedule 11.08.2011    source источник


Ответы (3)


Согласно странице FB.getLoginStatus:

авторизация.логин

Это событие запускается, когда ваше приложение впервые замечает пользователя (другими словами, получает сеанс, когда у него еще не было действительного сеанса).

auth.logout

Это событие запускается, когда ваше приложение замечает, что действительного пользователя больше нет (другими словами, у него был сеанс, но он больше не может проверить текущего пользователя).

По сути, эти события запускаются изменениями в сеансе пользователя.

Если вы используете последнюю версию пакета SDK для JavaScript, сеанс пользователя должен поддерживаться автоматически, если для параметра cookie задано значение true, что должно инициализировать пакет SDK для JavaScript текущим сеансом пользователя (если он доступен).

FB.init({
  appId: 'YOUR_APP_ID', 
  cookie: true, 
  xfbml: true,
  oauth: true
});
person jBit    schedule 12.08.2011

У меня тоже есть эта проблема, хотя у меня есть параметр cookie, установленный в моей функции FB.init. Используя Chrome Dev Tools, я вижу, что файл cookie был создан JS SDK, но событие auth.login срабатывает при каждой загрузке страницы независимо от этого.

Я перенаправляюсь на url.com?login, когда запускается PHP, чтобы войти в мое приложение или создать новую учетную запись, если она не существует. После завершения входа PHP снова перенаправляет на url.com. На данный момент это вызывает бесконечный цикл между запуском события auth.login и перенаправлением PHP обратно на страницу.

На данный момент я делаю некоторые проверки в JS, чтобы увидеть, есть ли у PHP зарегистрированный пользователь или нет, прежде чем выполнять перенаправление, но, прочитав документацию, я не должен этого делать.

Кто-нибудь еще испытал это?

person brendo    schedule 17.11.2011

У меня такая же проблема. Вход в систему срабатывает при каждой загрузке страницы ... все еще не может найти решение после того, как поиграл с ним в течение нескольких часов на разных машинах с разными браузерами.

В facebook уже есть запись об ошибке: https://developers.facebook.com/bugs/478371735509917

person itinance    schedule 19.07.2012