Механизм обновления токена доступа в системах авторизации
Краткий ответ
Refresh flow — это процесс обновления access-токена с помощью refresh-токена, позволяющий поддерживать сессию пользователя без повторной аутентификации. Refresh-токен обладает более длительным сроком действия и используется для запроса нового access-токена.
Развёрнуто
Краткий ответ
Refresh flow — это процесс продления срока действия access-токена путём использования refresh-токена, который позволяет пользователю оставаться авторизованным без повторного ввода логина и пароля.
Как это работает
В системах аутентификации, таких как OAuth 2.0, после успешного входа пользователь получает два токена: access-токен и refresh-токен. Access-токен используется для доступа к защищённым ресурсам и обычно имеет короткий срок жизни (например, 15 минут).
Когда access-токен истекает, клиентское приложение отправляет запрос на сервер авторизации с использованием refresh-токена (refresh_token), чтобы получить новый access-токен без необходимости повторной аутентификации пользователя.
Основные этапы:
- Пользователь аутентифицируется и получает
access_tokenиrefresh_token. - При истечении срока действия
access_tokenприложение отправляетrefresh_tokenна эндпоинт обновления. - Сервер проверяет валидность
refresh_tokenи выдаёт новыйaccess_token(и, возможно, новыйrefresh_token).
| Токен | Срок действия | Назначение |
|---|---|---|
| Access-токен | Короткий (минуты) | Доступ к API/ресурсам |
| Refresh-токен | Длинный (дни/недели) | Получение новых access-токенов |
Пример
POST /oauth/token HTTP/1.1
Host: auth.example.com
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token&refresh_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
В ответ сервер вернёт новый access_token, который клиент будет использовать для последующих запросов.
Что важно знать на собеседовании
- Refresh flow минимизирует необходимость повторного ввода учетных данных пользователем.
- Refresh-токен должен храниться безопасно, так как он даёт возможность получить новые access-токены.
- Access-токены обычно имеют короткий срок жизни для повышения безопасности.
- Сервер может отзывать refresh-токены, например, при выходе пользователя из системы.
- Важно реализовать защиту от атак повторного использования (replay attacks) refresh-токена.
Тема: Безопасность и авторизация | Уровень: middle