ТестированиеAPI-тестированиеАвторизация
Готовим следующую карточку…
СобеседованиеСредняя
Вопрос

В SPA два запроса к защищённому API стартуют почти одновременно, когда access token уже истёк. Найдите проблему в обработке 401, объясните её последствия при ротации refresh token и предложите, как проверить исправление.

let accessToken = "old-token";

async function refreshAccessToken() {
  const r = await fetch("/auth/refresh", { method: "POST" });
  const { access_token } = await r.json();
  accessToken = access_token;
}

async function callApi(path) {
  let r = await fetch(path, {
    headers: { Authorization: `Bearer ${accessToken}` }
  });
  if (r.status === 401) {
    await refreshAccessToken();
    r = await fetch(path, {
      headers: { Authorization: `Bearer ${accessToken}` }
    });
  }
  return r;
}

Смахните карточку влево, чтобы повысить рейтинг, или вправо, чтобы понизить.