Как я могу автоматически обновить токен и повторно повторить запрос на выброс после получения ответа 401?Javascript

Форум по Javascript
Ответить
Anonymous
 Как я могу автоматически обновить токен и повторно повторить запрос на выброс после получения ответа 401?

Сообщение Anonymous »

const acceptRequest = async () => {
try {
const res = await fetch(`${process.env.NEXT_PUBLIC_SOCKET_SERVER_URL}/acceptRequest`, {
method: "POST",
body: JSON.stringify({ id: enemyid }),
credentials: "include",
headers: {
"Content-Type": "application/json",
},
});
if (res.status === 200) toast("Working");
if(res.status === 401)await refreshTokenFn()
} catch (err) {
if (err instanceof Error) toast(err.message);
setPending(false);
}
};
< /code>
У меня есть функция обновления, которую я могу вызвать, чтобы обновить токен. Я хочу, чтобы запрос Fetch автоматически повторился после обновления токена, не дублировав весь код.const acceptRequest = async () => {
try {
const res = await fetch(`${process.env.NEXT_PUBLIC_SOCKET_SERVER_URL}/acceptRequest`, {
method: "POST",
body: JSON.stringify({ id: enemyid }),
credentials: "include",
headers: {
"Content-Type": "application/json",
},
});
if (res.status === 200) toast("Working");
if(res.status === 401){
await refreshTokenFn()
const res = await fetch(`${process.env.NEXT_PUBLIC_SOCKET_SERVER_URL}/acceptRequest`, {
method: "POST",
body: JSON.stringify({ id: enemyid }),
credentials: "include",
headers: {
"Content-Type": "application/json",
},
});
if (res.status === 200) toast("Working");
}

} catch (err) {
if (err instanceof Error) toast(err.message);
setPending(false);
}
};


Подробнее здесь: https://stackoverflow.com/questions/796 ... after-rece
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»