From 5b20ebb7b0854a06c0a673a9b9b7e4e2ce3f1e3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=B6=E7=91=BE?= Date: Fri, 30 Jan 2026 18:51:13 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20webui=20=E9=9A=8F=E6=9C=BAtoken=E4=BB=85?= =?UTF-8?q?=E7=94=9F=E6=88=90=E4=B8=8D=E4=BC=9A=E8=A2=ABurl=E7=BC=96?= =?UTF-8?q?=E7=A0=81=E7=9A=84=E9=9A=8F=E6=9C=BA=E5=AD=97=E7=AC=A6=20(#1565?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: webui 随机token仅生成不会被url编码的随机字符 * fix: 移除调试模块中的encodeURIComponent --- .../components/network_edit/generic_form.tsx | 2 +- .../src/pages/dashboard/extension.tsx | 114 +++++++++--------- 2 files changed, 59 insertions(+), 57 deletions(-) diff --git a/packages/napcat-webui-frontend/src/components/network_edit/generic_form.tsx b/packages/napcat-webui-frontend/src/components/network_edit/generic_form.tsx index bcc70a0a..33840659 100644 --- a/packages/napcat-webui-frontend/src/components/network_edit/generic_form.tsx +++ b/packages/napcat-webui-frontend/src/components/network_edit/generic_form.tsx @@ -180,7 +180,7 @@ const GenericForm = ({ export default GenericForm; export function random_token (length: number) { const chars = - 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@#$%^&*()-_=+[]{}|;:,.<>?'; + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.~'; let result = ''; for (let i = 0; i < length; i++) { result += chars.charAt(Math.floor(Math.random() * chars.length)); diff --git a/packages/napcat-webui-frontend/src/pages/dashboard/extension.tsx b/packages/napcat-webui-frontend/src/pages/dashboard/extension.tsx index 9b3dbe99..6d3d4d21 100644 --- a/packages/napcat-webui-frontend/src/pages/dashboard/extension.tsx +++ b/packages/napcat-webui-frontend/src/pages/dashboard/extension.tsx @@ -58,7 +58,7 @@ export default function ExtensionPage () { pluginName: page.pluginName, path: page.path, icon: page.icon, - description: page.description + description: page.description, })); }, [extensionPages]); @@ -69,7 +69,7 @@ export default function ExtensionPage () { const path = pathParts.join(':').replace(/^\//, ''); // 获取认证 token const token = localStorage.getItem('token') || ''; - return `/api/Plugin/page/${pluginId}/${path}?webui_token=${encodeURIComponent(token)}`; + return `/api/Plugin/page/${pluginId}/${path}?webui_token=${token}`; }, [selectedTab]); useEffect(() => { @@ -89,73 +89,75 @@ export default function ExtensionPage () { return ( <> 扩展页面 - NapCat WebUI -
+
-
-
+
+
- 插件扩展页面 + 插件扩展页面
- {extensionPages.length === 0 && !loading ? ( -
- -

暂无插件扩展页面

-

插件可以通过注册页面来扩展 WebUI 功能

-
- ) : ( -
- setSelectedTab(key as string)} - classNames={{ - tabList: 'bg-white/40 dark:bg-black/20 backdrop-blur-md flex-wrap', - cursor: 'bg-white/80 dark:bg-white/10 backdrop-blur-md shadow-sm', - panel: 'flex-1 min-h-0 p-0' - }} - > - {tabs.map((tab) => ( - - {tab.icon && {tab.icon}} - {tab.title} - ({tab.pluginName}) -
- } - > -
- {iframeLoading && ( -
- + {extensionPages.length === 0 && !loading + ? ( +
+ +

暂无插件扩展页面

+

插件可以通过注册页面来扩展 WebUI 功能

+
+ ) + : ( +
+ setSelectedTab(key as string)} + classNames={{ + tabList: 'bg-white/40 dark:bg-black/20 backdrop-blur-md flex-wrap', + cursor: 'bg-white/80 dark:bg-white/10 backdrop-blur-md shadow-sm', + panel: 'flex-1 min-h-0 p-0', + }} + > + {tabs.map((tab) => ( + + {tab.icon && {tab.icon}} + {tab.title} + ({tab.pluginName})
- )} -