Продлить недолговечный access_token на долгое время

Позвольте мне объяснить название:

у меня есть PHP API используя аутентификацию OAuth2.

у меня есть Приложение NodeJS,используя этот API через Password Grant. В сеансе узел хранит токен доступа и токен обновления для каждого пользователя.

У меня нет проблем с обновлением access_token с refresh_token, когда пользователь запрашивает узел или через демона внешнего интерфейса, регулярно запрашивая обновление узла.

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

заранее спасибо

0

Решение

Во многих распространенных реализациях OAuth2 токены обновления действительны в течение длительного времени (намного дольше, чем токен доступа) или вообще не имеют срока действия. Вам необходимо сохранить этот токен обновления, связанный с сеансом вашего узла (например, в БД). Затем, когда пользователь возвращается, просто получите новый токен доступа, используя соответствующий токен обновления.

В соответствии с http://blog.cloud-elements.com/oauth-2-0-access-refresh-token-guide:

  • коробка
    • Токен доступа: 1 час
    • Обновить токен: 60 дней (сбрасывает 60 дней при получении нового токена доступа)
  • Dropbox
    • Токен доступа: навсегда
    • Обновить токен: N / A
  • Google DriveGoogle Drive OAuth
    • Токен доступа: по моему опыту, 1 час, но, похоже, это может варьироваться в зависимости от API Google (поле expires_in возвращается в JSON)
    • Обновить токен: навсегда
  • Один диск
    • Токен доступа: 1 час
    • Обновление токена: 6 месяцев (Получайте новый при каждом вызове обновления)
  • SharePoint
    • Токен доступа: 1 час
    • Обновление токена: 6 месяцев (Получайте новый при каждом вызове обновления)
0

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

Срок действия маркера обновления не может истечь или может быть очень длительным.

0

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