Что такое Refresh Token

«Что такое Refresh Token» — вопрос из категории Безопасность, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Как работает:

  1. После входа сервер выдает Access Token (короткоживущий) и Refresh Token (долгоживущий).
  2. Когда Access Token истекает, клиент отправляет Refresh Token на сервер для получения нового Access Token.
  3. Refresh Token может быть отозван сервером (например, при выходе пользователя).

Пример:

// Отправка Refresh Token для получения нового Access Token
fetch('/refresh-token', {
  method: 'POST',
  body: JSON.stringify({ refreshToken: 'your_refresh_token' }),
  headers: { 'Content-Type': 'application/json' }
})
.then(response => response.json())
.then(data => {
  localStorage.setItem('accessToken', data.accessToken);
});

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

  • Хранится в HttpOnly cookie или Secure Storage.
  • Имеет ограниченный срок действия и может быть отозван.