Что такое access token и refresh token, как они работают?

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


1️⃣ Access token

  • Назначение: предоставляет клиенту доступ к ресурсам сервера.

  • Время жизни: короткое (обычно несколько минут или часов).

  • Использование: передаётся в HTTP-заголовке Authorization: Bearer <access_token> при запросах к API.

  • Преимущество: даже если токен украден, ущерб ограничен коротким сроком действия.

Пример запроса:

GET /users/me
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

2️⃣ Refresh token

  • Назначение: позволяет получить новый access token без повторной авторизации пользователя (логина).

  • Время жизни: долгое (несколько дней или недель).

  • Использование: клиент отправляет refresh token на отдельный endpoint (/refresh) и получает новый access token.

  • Хранение: обычно хранится безопасно на клиенте (например, HttpOnly cookie) и не передаётся часто.

Пример:

POST /refresh
Body: { "refresh_token": "<refresh_token>" }
Response: { "access_token": "...", "expires_in": 3600 }

3️⃣ Принцип работы вместе

  1. Пользователь логинится → сервер выдаёт access token и refresh token.

  2. Клиент использует access token для запросов к API.

  3. Когда access token истекает → клиент отправляет refresh token → получает новый access token.

  4. Если refresh token истёк или отозван → требуется повторная авторизация пользователя.


4️⃣ Зачем это важно для QA

  • Проверять корректную работу access и refresh токенов.

  • Проверять истечение срока действия токенов и обработку ошибок (401 Unauthorized).

  • Проверять безопасное хранение refresh token и защиту от утечек.

Last updated

Was this helpful?