Ротация токенов - это механизм безопасности, который обеспечивает периодическую замену старых аутентификационных токенов на новые. При этом каждый раз при использовании токена обновления выдается новая пара токенов, а предыдущий токен становится недействительным.

Как работает процесс ротации

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

Такой механизм обеспечивает несколько важных аспектов безопасности:

  • Предотвращает многократное использование одного и того же токена
  • Защищает от утечки токенов
  • Обеспечивает контроль над временем жизни сессии
  • Позволяет мгновенно инвалидировать все токены при компрометации

При получении ошибки 401 после попытки обновления токена, клиент должен автоматически выполнить полную аутентификацию, а не пытаться повторно использовать тот же refresh_token.