Как я могу автоматически обновить токен и повторно повторить запрос на выброс после получения ответа 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

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