Постоянная аутентификация веб-приложения с Facebook

У меня есть веб-приложение, в котором есть кнопка «Войти через Facebook», реализованная с помощью PHP SDK. Работает как обычно. Пользователи перенаправляются на Facebook. Facebook перенаправляет их обратно в веб-приложение. Веб-приложение получает их информацию и создает запись в БД о них.

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

Как мне это исправить?

1

Решение

Есть несколько подходов:

  1. Используйте cookie-файл Запомнить меня, как в обычной форме входа в систему. Чтобы повысить меры безопасности, вы можете выполнить проверку с помощью API Facebook, если пользователь такой же:
    1. Свяжите токен OAuth на Facebook и токен cookie «Запомнить меня» в вашей базе данных.
    2. Когда пользователь создает новую сессию с помощью файла «запомнить меня», вы можете проверить (с помощью кода на стороне клиента), является ли соответствующий токен Facebook действительным и пользователь все еще вошел в систему с вашим приложением.
  2. Храните только клиентский токен Facebook (локальное хранилище). На последующих сессиях вы можете проверить, кто пользователь, с помощью API Facebook и сохраненного токена. Этот подход медленнее, хотя.

В любом случае вы хотели бы обменять недопустимый токен доступа Facebook на долгоживущий токен доступа1 и сохраните это в своей базе данных.

Подробнее о токенах доступа2:

1: https://developers.facebook.com/docs/facebook-login/access-tokens#extending
2: https://www.sammyk.me/access-token-handling-best-practices-in-facebook-php-sdk-v4

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]