Готовим следующую карточку…
СобеседованиеСредняя
Вопрос
В 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;
}