From 0ec5bdfc1907a0eeaaaac558a01469631f639ce4 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Mon, 29 Jun 2026 12:40:11 +0800 Subject: [PATCH] =?UTF-8?q?fix(dashboard):=20=E4=BB=8EURL=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E8=87=AA=E5=8A=A8=E8=AF=BB=E5=8F=96token=E5=B9=B6?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复管理后台Web登录后dashboard仍提示缺JWT的问题: - dashboard.js bootstrap() 新增 URL ?t= 参数读取逻辑 - 自动将token填入#token input并触发loadDashboard - 登录后自动跳转→自动认证→自动加载数据,用户无感知 验证: 浏览器登录admin/Admin123! → dashboard自动加载'已连接·数据已加载' --- admin/static/dashboard.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/admin/static/dashboard.js b/admin/static/dashboard.js index 1d360df..75e6491 100644 --- a/admin/static/dashboard.js +++ b/admin/static/dashboard.js @@ -378,6 +378,23 @@ function logout() { } function bootstrap() { + // 优先从 URL 参数 t 读取 token(管理后台 Web 登录页跳转场景) + const urlParams = new URLSearchParams(window.location.search); + const urlToken = urlParams.get("t"); + if (urlToken) { + setToken(urlToken); + window.sessionStorage.setItem(TOKEN_KEY, urlToken); + // 清除 URL 中的 token 参数(安全考虑) + urlParams.delete("t"); + const cleanUrl = + window.location.pathname + + (urlParams.toString() ? "?" + urlParams.toString() : ""); + window.history.replaceState({}, document.title, cleanUrl); + // 自动加载数据 + setTimeout(() => loadDashboard({ loginFirst: false }), 100); + return; + } + const cachedToken = window.sessionStorage.getItem(TOKEN_KEY); if (cachedToken && !getToken()) { setToken(cachedToken);