PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Что такое Refresh Token?

DOM и браузер

Refresh Token — это долгоживущий токен, который используется для получения нового access token, когда тот истёк, без повторного ввода логина и пароля.

Зачем нужен

Access token делают короткоживущим (минуты), чтобы при краже он быстро стал бесполезным. Но заставлять пользователя логиниться каждые 15 минут неудобно. Refresh token решает это: он живёт дольше (дни/недели) и позволяет молча обновить access token.

Как работает

  1. При логине сервер выдаёт access token (короткий) и refresh token (длинный).
  2. Клиент использует access token для запросов.
  3. Когда access token истёк — клиент шлёт refresh token на /refresh.
  4. Сервер проверяет его и выдаёт новый access token (и часто новый refresh — ротация).
POST /auth/refresh  (refresh token в HttpOnly cookie)
→ { accessToken: 'новый' }

Безопасность

  • Хранить refresh token безопасно: HttpOnly cookie (не в localStorage — XSS).
  • Ротация — при каждом обновлении выдавать новый refresh, старый инвалидировать.
  • Отзыв — сервер хранит/проверяет refresh токены, может их отозвать (в отличие от stateless access token).

Access token против refresh token

  • Access — короткий, для доступа к API, шлётся с каждым запросом.
  • Refresh — длинный, только для получения нового access, хранится защищённо.

Коротко для собеседования

Refresh token — долгоживущий токен для получения нового короткого access token без повторного логина. Access делают коротким для безопасности, refresh хранят в HttpOnly cookie, применяют ротацию и могут отзывать на сервере. Access — для API, refresh — только для обновления.

Другие вопросы раздела