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

Поясню название:

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

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

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

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

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


person AlexStef    schedule 01.09.2015    source источник


Ответы (2)


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

Согласно http://blog.cloud-elements.com/oauth-2-0-access-refresh-token-guide:

  • Box
    • Access token: 1 hour
    • Обновить токен: 60 дней (60 дней сбрасывается при получении нового токена доступа)
  • Dropbox
    • Access token: Forever
    • Обновить токен: нет данных
  • Google DriveGoogle Drive OAuth
    • Access token: 1 hour, from my experience, but it seems this can vary depending on the Google API (expires_in field is returned in JSON)
    • Жетон обновления: навсегда
  • OneDrive
    • Access token: 1 hour
    • Токен обновления: 6 месяцев (получайте новый каждый раз, когда вы вызываете обновление)
  • SharePoint
    • Access token: 1 hour
    • Токен обновления: 6 месяцев (получайте новый каждый раз, когда вы вызываете обновление)
person pitpit    schedule 01.09.2015

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

person slig36    schedule 01.09.2015