Встречается на собеседованиях • сегодня

Как реализовывал Token Refresh

Для реализации Token Refresh обычно используется следующий подход:

  1. При получении 401 ошибки от API:
javascript
axios.interceptors.response.use(
  response => response,
  async (error) => {
    if (error.response.status === 401) {
      const newToken = await refreshToken();
      error.config.headers.Authorization = `Bearer ${newToken}`;
      return axios(error.config);
    }
    return Promise.reject(error);
  }
);
  1. Функция refreshToken делает запрос на специальный эндпоинт:
javascript
async function refreshToken() {
  const response = await axios.post('/refresh', {
    refreshToken: localStorage.getItem('refreshToken')
  });
  localStorage.setItem('accessToken', response.data.accessToken);
  return response.data.accessToken;
}

Важные моменты:

  • Refresh token хранится в httpOnly cookie или secure storage
  • Добавляется очередь запросов на случай параллельных 401 ошибок
  • После неудачного refresh - делаем logout
  • Access token имеет короткое время жизни (15-30 мин), refresh - долгое (недели)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы