php - лучшее решение для хранения access_token - PullRequest
0 голосов
/ 29 мая 2019

Я создаю небольшое приложение, в котором пользователи должны проходить аутентификацию через Facebook (я использую OAuth2).На данный момент вся эта процедура выглядит следующим образом:

  • Пользователь нажмет кнопку «FB Login».
  • Пользователю будет предложено войти в Facebook и дать разрешение.Если пользователь разрешит, он вернет код авторизации.
  • Теперь мы будем использовать код авторизации для получения токена доступа.
  • Мы можем сохранить токен доступа в сеансе, чтобы начать сеанс пользователя.
  • Теперь мы можем использовать токен доступа для доступа к различным пользовательским ресурсам.

И вот у меня вопрос - лучше ли (т.е. самый безопасный способ) хранить access_token для дальнейшего использования?«Спрятать» его просто в базе данных и взять его, когда это необходимо, или он может разработать какой-то оригинальный алгоритм хеширования для его защиты?

1 Ответ

1 голос
/ 29 мая 2019

Токены доступа имеют короткое время жизни - если у вас есть сеанс на стороне сервера, проще хранить там токен доступа (не в базе данных), чтобы его могли использовать все запросы.Лучше повторно использовать один токен доступа, чем получать новый для каждого запроса, используя токен обновления.Одной из причин является производительность.Получение нового токена доступа может отозвать старые токены доступа, созданные тем же токеном обновления, но это зависит от реализации вашего сервера OAuth2.

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

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

...