Вход в Facebook: проверьте подлинность на каждой странице?

Я следую этому руководству: https://developers.facebook.com/docs/howtos/login/getting-started/

Все работает нормально в отношении входа. Я не понимаю, как я обрабатываю «сеансы»:

  • Я полагаю, что вместо сеансов используется FB.getLoginStatus?
  • Я должен проверять FB.getLoginStatus 36 каждый раз, когда пользователь вводит новую страницу на моем веб-сайте. Означает ли это, что я должен инициализировать JavaScript SDK для каждой страницы? Это 50 строк кода для каждой страницы, чтобы проверить статус входа в систему.

Я использую PHP, MySQL, JavaScript и HTML5.

Я полагаю, что вместо сеансов используется FB.getLoginStatus?

FB.getLoginStatus используется, чтобы помочь вам оптимизировать работу ваших посетителей на основе их статуса входа и, следовательно, это не замена « сеансов ».

Я должен проверять FB.getLoginStatus каждый раз, когда пользователь вводит новую страницу на моем сайте. Означает ли это, что я должен инициализировать JavaScript SDK для каждой страницы? Thats 50 строк кода для каждой страницы, чтобы проверить статус входа …

Ну, инициализация Javascript SDK – это то, что вам нужно сделать, если вы хотите использовать SDK. Теперь я не вижу ничего плохого в количестве строк кода , поскольку Facebook уже загружает SDK асинхронно и, следовательно, не блокирует ваши ресурсы страницы.

И для вашего первого момента вам не нужно каждый раз называть FB.getLoginStatus при загрузке страницы, и Facebook уже заявляет об этом в соответствующем документе :

В любое время вы можете вызвать FB.getLoginStatus (например, когда пользователь пытается выполнить социальное действие), большинство социальных приложений должны знать статус пользователя как можно скорее после загрузки страницы. В этом случае, а не при вызове FB.getLoginStatus явно, можно проверить статус пользователя, установив status: true когда вы вызываете FB.init .

Чтобы получить ответ на этот вызов, вы должны подписаться на событие auth.statusChange . Объект ответа, переданный этим событием, идентичен объекту ответа, который будет возвращен при явном вызове FB.getLoginStatus .


Теперь одна вещь, которую вы, возможно, пропустили, – это PHP-SDK :

SDK для PHP может работать совместно с SDK для Javascript для обеспечения бесшовного управления сеансом как на стороне клиента, так и на стороне сервера.

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

Из области разработчиков Facebook кажется, что у них есть раздел о том, как войти в систему, не вызывая их Javascript SDK.

https://developers.facebook.com/docs/howtos/login/client-side-without-js-sdk/

Пользователь будет иметь токен доступа к API, который может использоваться для дальнейших запросов.

Надеюсь, это поможет.