2013-08-16 3 views
0

Я вижу, что OAuth работает хорошо для полностью Ajaxified приложения, так как локальный JS-код всегда может воспроизводить токен-носитель на сервере. Однако, что произойдет, если у нас есть обновление страницы? В этом случае я предполагаю, что мы потеряем токен, а затем вернемся через процесс перенаправления OAuth, чтобы получить еще новый токен доступа. Правильно ли это, и есть ли способы избежать этого, например, хранить токен доступа в локальном хранилище HTML5?токен доступа OAuth и обновления страниц

ответ

0

Если вы говорите OAuth 2.0, вы можете запросить как a refresh token, так и маркер доступа (или несущей) при аутентификации с поставщиком OAuth 2.0. Ток обновления должен быть возвращен непосредственно серверу, на котором размещено веб-приложение, которое каким-то образом хранится (возможно, состояние сеанса) и никогда не отображается в браузере. Браузер может использовать токен доступа для запросов к защищенным службам/конечным точкам, которые его требуют, но он должен иметь короткий срок службы (независимо от того, было ли обновление страницы). По истечении срока действия (опять-таки может быть или не связано с обновлением страницы) клиентское приложение может сделать запрос на сервер хостинга, на котором был поставлен токен обновления. Затем сервер может использовать токен обновления, чтобы получить новый токен доступа БЕЗ пользователя, нуждающегося в повторном входе в систему.

Существует диаграмма этого в refresh token section спецификации OAuth 2.0.

Существует несколько вариантов использования OAuth 2.0, и детали могут отличаться в зависимости от вашего конкретного сценария и реализации, но, надеюсь, это дает вам представление высокого уровня о том, как вы можете избежать запроса повторной аутентификации пользователя, когда доступ токен истекает или перезагружается.

Смежные вопросы