From 21916c565ab6e96daa6daa7a361e64161145b060 Mon Sep 17 00:00:00 2001 From: Karlcarlo Date: Fri, 31 Jul 2026 15:22:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20openid=20=E4=B8=8D=E4=B8=80=E8=87=B4?= =?UTF-8?q?=E6=B8=85=E9=99=A4=E7=BC=93=E5=AD=98=E6=97=B6=E4=BF=9D=E7=95=99?= =?UTF-8?q?=20URL=20=E5=8F=82=E6=95=B0=E9=87=8D=E6=96=B0=E7=99=BB=E5=BD=95?= =?UTF-8?q?=EF=BC=88=E9=81=BF=E5=85=8D=E8=B7=B3=E5=88=B0=E6=97=A0=E8=BA=AB?= =?UTF-8?q?=E4=BB=BD=E7=99=BB=E5=BD=95=E9=A1=B5=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/app/routes.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/routes.tsx b/frontend/src/app/routes.tsx index 1364019..f5b271a 100644 --- a/frontend/src/app/routes.tsx +++ b/frontend/src/app/routes.tsx @@ -32,14 +32,16 @@ function ProtectedRoute() { return ; } - // URL 中有 openid 且与本地缓存的 token 中的 openid 不一致 → 清除缓存重新登录 + // URL 中有 openid 且与本地缓存的 token 中的 openid 不一致 → 清除缓存,保留 URL 参数重新登录 if (urlOpenid && token) { try { const payload = decodeToken(token); if (payload.openid !== urlOpenid) { - console.log('[auth] openid 不一致: URL=' + urlOpenid + ', cache=' + payload.openid + ',清除缓存'); + console.log('[auth] openid 不一致: URL=' + urlOpenid + ', cache=' + payload.openid + ',清除缓存,保留 URL 参数重新登录'); clearToken(); - return ; + // 保留 openid/unionid 等参数跳登录页,LoginPage 会用 URL 的 openid 直接登录 + const search = new URLSearchParams(window.location.search).toString(); + return ; } } catch (e) { console.warn('[auth] token 解码失败', e);