Refresh-токен (токен обновления)

Refresh-токен — это долгоживущий секрет, единственная задача которого получать новые короткоживущие access-токены. Разделение появилось потому, что два требования тянут в разные стороны: access-токен уходит с каждым вызовом API и должен быстро истекать, чтобы утёкший перестал работать за минуты, а пользователь или интеграция не должны переавторизовываться каждый час. Access-токен тратится постоянно и стоит немного; refresh-токен используется редко, ходит только на сервер авторизации и стоит дорого. Для SaaS-продукта это обычно самая незаметная часть интеграции и самая частая причина того, что интеграция замолкает. Связь, работавшая при настройке, ломается через недели: у refresh-токена вышел абсолютный срок жизни, его отозвали при смене пароля или доступ забрали с экрана согласия, который никто в вашей команде не видит. API возвращает ошибку авторизации, а не ошибку синхронизации, поэтому наивный цикл повторов долбит эндпоинт, и о сбое первым узнаёт клиент, а не вы. Решают две вещи. Ротация refresh-токена выдаёт новый токен при каждом использовании и гасит предыдущий — украденный токен превращается в наблюдаемое событие: если старый предъявлен снова, значит повтор делает либо злоумышленник, либо законный клиент, и безопасная реакция состоит в том, чтобы отозвать всю цепочку. Хранение — это хранение учётных данных: шифрование на диске, никаких токенов в логах и в адресной строке, привязка к одному арендатору. Практический совет: держите срок жизни рядом с токеном, обновляйте заранее, а не по первой ошибке, и показывайте сломанное подключение в интерфейсе как действие, которое клиент может выполнить сам, — переавторизовать может только он.

Похожие термины

Ещё термины: Интеграции