From 8b0d999619c6a293f3b3b11a3824278a4898bf16 Mon Sep 17 00:00:00 2001 From: mtvpls Date: Tue, 27 Jan 2026 09:14:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dtoken=E8=BF=87=E6=9C=9F?= =?UTF-8?q?=E6=97=A0=E9=99=90=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/TokenRefreshManager.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/components/TokenRefreshManager.tsx b/src/components/TokenRefreshManager.tsx index ddad9ab..06e883d 100644 --- a/src/components/TokenRefreshManager.tsx +++ b/src/components/TokenRefreshManager.tsx @@ -115,15 +115,21 @@ export function TokenRefreshManager() { // 发送请求 let response = await originalFetch(input, init); - // 响应拦截:401 错误时刷新 Token 并重试 + // 响应拦截:401 错误时刷新 Token 并重试(仅重试一次) if (response.status === 401 && !isRefreshing) { console.log('[Token] Received 401, attempting refresh and retry...'); const refreshed = await refreshToken(); if (refreshed) { - // 刷新成功,重试原请求 + // 刷新成功,重试原请求(仅此一次) response = await originalFetch(input, init); + + // 如果重试后仍然是 401,说明有其他问题,不再重试 + if (response.status === 401) { + console.error('[Token] Still 401 after refresh, redirecting to login'); + window.location.href = `/login?redirect=${encodeURIComponent(window.location.pathname + window.location.search)}`; + } } }