WEB

Access и Refresh Токены

Access и Refresh токены


Access-токен — это токен, который предоставляет доступ его владельцу к защищенным ресурсам сервера. Обычно он имеет короткий срок жизни и может нести в себе дополнительную информацию, такую как IP-адрес стороны, запрашивающей данный токен.
Refresh-токен — это токен, позволяющий клиентам запрашивать новые access-токены по истечении их времени жизни. Данные токены обычно выдаются на длительный срок.

 

Схема работы


Как правило, при использовании JSON токенов в клиент-серверных приложениях реализована следующая схема:


1. Клиент проходит аутентификацию в приложении (к примеру, с использованием логина и пароля).
2. В случае успешной аутентификации, сервер отправляет клиенту access- и refresh-токены.
3. При дальнейшем обращении к серверу, клиент использует access-токен. Сервер проверяет токен на валидность и предоставляет клиенту доступ к ресурсам.
4. В случае, если access-токен становится не валидным, клиент отправляет refresh-токен, в ответ на который сервер предоставляет два обновленных токена.
5. В случае, если refresh-токен становится не валидным, клиент опять должен пройти процесс аутентификации.

JSON Web Token (JWT) — это открытый стандарт для создания токенов доступа, основанный на формате JSON.


Преимущества JSON Web Token (JWT) над куки:


• При использовании куки сервер должен хранить информацию о выданных сессиях, в то время как использование JWT не требует хранения дополнительных данных о выданных токенах: все, что должен сделать сервер — это проверить подпись.


• Сервер может не заниматься созданием токенов, а предоставить это внешним сервисам.


• В JSON токенах можно хранить дополнительную полезную информацию о пользователях. Как следствие — более высокая производительность. В случае c куки иногда необходимо осуществлять запросы для получения дополнительной информации. При использовании JWT эта информация может быть передана в самом токене.


• JWT делает возможным предоставление одновременного доступа к различным доменам и сервисам.

© 2021 QAstart.by