Ротация токенов - это механизм безопасности, который обеспечивает периодическую замену старых аутентификационных токенов на новые. При этом каждый раз при использовании токена обновления выдается новая пара токенов, а предыдущий токен становится недействительным.
Как работает процесс ротации
- Клиент использует действующий токен обновления для получения нового доступа
- Сервер генерирует новый набор токенов (токен доступа и токен обновления)
- Старый токен обновления сразу же отзывается
- Процесс повторяется при каждом обновлении токена
sequenceDiagram
participant К as Клиент
participant С as Сервер
Note over К,С: Нормальное обновление токена
К->>+С: Запрос с токеном обновления A
С-->>-К: Новый токен доступа +<br/>Новый токен обновления B
Note over К,С: Токен A теперь недействителен
Note over К,С: Попытка злоумышленника использовать украденный токен A
К->>+С: Запрос с украденным токеном A
С-->>-К: Отказ в доступе
Note over С: Все связанные токены<br/>отозваны
С-->>К: Требуется повторная аутентификация
Такой механизм обеспечивает несколько важных аспектов безопасности:
- Предотвращает многократное использование одного и того же токена
- Защищает от утечки токенов
- Обеспечивает контроль над временем жизни сессии
- Позволяет мгновенно инвалидировать все токены при компрометации
При получении ошибки 401 после попытки обновления токена, клиент должен автоматически выполнить полную аутентификацию, а не пытаться повторно использовать тот же refresh_token.