На каждый ли запрос нужно прикреплять refresh token

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

Ответ

Нет, refresh token не нужно прикреплять к каждому запросу. Он используется только для обновления access token, когда тот истек. Access token отправляется с каждым запросом, а refresh token — только при запросе нового access token.

Пример:

// Получение нового access token с помощью refresh token
async function refreshToken() {
  const response = await fetch('/refresh-token', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ refreshToken: storedRefreshToken }),
  });
  const { accessToken } = await response.json();
  return accessToken;
}

Refresh token хранится безопасно (например, в httpOnly cookie) и используется редко, что снижает риск его компрометации.