К списку
Безопасность и авторизацияMiddleТехническое

Механизм обновления токена доступа в системах авторизации

Краткий ответ

Refresh flow — это процесс обновления access-токена с помощью refresh-токена, позволяющий поддерживать сессию пользователя без повторной аутентификации. Refresh-токен обладает более длительным сроком действия и используется для запроса нового access-токена.

Развёрнуто

Краткий ответ

Refresh flow — это процесс продления срока действия access-токена путём использования refresh-токена, который позволяет пользователю оставаться авторизованным без повторного ввода логина и пароля.


Как это работает

В системах аутентификации, таких как OAuth 2.0, после успешного входа пользователь получает два токена: access-токен и refresh-токен. Access-токен используется для доступа к защищённым ресурсам и обычно имеет короткий срок жизни (например, 15 минут).

Когда access-токен истекает, клиентское приложение отправляет запрос на сервер авторизации с использованием refresh-токена (refresh_token), чтобы получить новый access-токен без необходимости повторной аутентификации пользователя.

Основные этапы:

  1. Пользователь аутентифицируется и получает access_token и refresh_token.
  2. При истечении срока действия access_token приложение отправляет refresh_token на эндпоинт обновления.
  3. Сервер проверяет валидность 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