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

Что делать если токен просрочился

При истечении срока действия токена нужно реализовать механизм его обновления. Вот типовой алгоритм:

  1. Перехватываем 401 ошибку в интерсепторе или проверяем exp у JWT
  2. Отправляем запрос на /refresh с refresh-токеном
  3. Получаем новую пару токенов
  4. Повторяем исходный запрос с новым токеном
  5. При неудаче - делаем логаут

Пример на axios:

javascript
axios.interceptors.response.use(
  response => response,
  async error => {
    if (error.response.status === 401) {
      const { data } = await axios.post('/refresh', { refreshToken });
      localStorage.setItem('token', data.accessToken);
      error.config.headers.Authorization = `Bearer ${data.accessToken}`;
      return axios.request(error.config);
    }
    return Promise.reject(error);
  }
);

Важно хранить refresh-токен в httpOnly куках для безопасности.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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