From e4c1807f7681b80e09c9220c015fceb49c4f404a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Sat, 6 Sep 2025 11:32:09 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=89=E5=85=A8=E6=80=A7=E6=8F=90?= =?UTF-8?q?=E5=8D=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/webui/src/api/Auth.ts | 2 +- src/webui/src/api/File.ts | 4 ++++ src/webui/src/api/Log.ts | 2 +- src/webui/src/api/OB11Config.ts | 6 +++++- src/webui/src/helper/config.ts | 3 ++- 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/webui/src/api/Auth.ts b/src/webui/src/api/Auth.ts index 5a6854e0..96fd3834 100644 --- a/src/webui/src/api/Auth.ts +++ b/src/webui/src/api/Auth.ts @@ -10,7 +10,7 @@ import { isEmpty } from '@webapi/utils/check'; // 检查是否使用默认Token export const CheckDefaultTokenHandler: RequestHandler = async (_, res) => { const webuiToken = await WebUiConfig.GetWebUIConfig(); - if (webuiToken.token.startsWith('napcat')) { + if (webuiToken.defaultToken) { return sendSuccess(res, true); } return sendSuccess(res, false); diff --git a/src/webui/src/api/File.ts b/src/webui/src/api/File.ts index db5e27b4..f4d09b56 100644 --- a/src/webui/src/api/File.ts +++ b/src/webui/src/api/File.ts @@ -65,6 +65,10 @@ const checkSameTypeExists = async (pathToCheck: string, isDirectory: boolean): P // 获取目录内容 export const ListFilesHandler: RequestHandler = async (req, res) => { + const webuiToken = await WebUiConfig.GetWebUIConfig(); + if (webuiToken.defaultToken) { + return sendError(res, '默认密码禁止使用'); + } try { const requestPath = (req.query['path'] as string) || (isWindows ? 'C:\\' : '/'); const normalizedPath = normalizePath(requestPath); diff --git a/src/webui/src/api/Log.ts b/src/webui/src/api/Log.ts index 3d344153..355d0826 100644 --- a/src/webui/src/api/Log.ts +++ b/src/webui/src/api/Log.ts @@ -47,7 +47,7 @@ export const CreateTerminalHandler: RequestHandler = async (req, res) => { if (isMacOS) { return sendError(res, 'MacOS不支持终端'); } - if ((await WebUiConfig.GetWebUIConfig()).token.startsWith('napcat')) { + if ((await WebUiConfig.GetWebUIConfig()).defaultToken) { return sendError(res, '该密码禁止创建终端'); } try { diff --git a/src/webui/src/api/OB11Config.ts b/src/webui/src/api/OB11Config.ts index 1670761d..fd05057f 100644 --- a/src/webui/src/api/OB11Config.ts +++ b/src/webui/src/api/OB11Config.ts @@ -2,7 +2,7 @@ import { RequestHandler } from 'express'; import { existsSync, readFileSync } from 'node:fs'; import { resolve } from 'node:path'; import { loadConfig, OneBotConfig } from '@/onebot/config/config'; -import { webUiPathWrapper } from '@/webui'; +import { WebUiConfig, webUiPathWrapper } from '@/webui'; import { WebUiDataRuntime } from '@webapi/helper/Data'; import { sendError, sendSuccess } from '@webapi/utils/response'; import { isEmpty } from '@webapi/utils/check'; @@ -47,6 +47,10 @@ export const OB11SetConfigHandler: RequestHandler = async (req, res) => { if (isEmpty(req.body.config)) { return sendError(res, 'config is empty'); } + const webuiToken = await WebUiConfig.GetWebUIConfig(); + if (webuiToken.defaultToken) { + return sendError(res, '默认密码禁止写入配置'); + } // 写入配置 try { // 解析并加载配置 diff --git a/src/webui/src/helper/config.ts b/src/webui/src/helper/config.ts index 459a6671..4dffe03a 100644 --- a/src/webui/src/helper/config.ts +++ b/src/webui/src/helper/config.ts @@ -18,6 +18,7 @@ const WebUiConfigSchema = Type.Object({ loginRate: Type.Number({ default: 10 }), autoLoginAccount: Type.String({ default: '' }), theme: themeType, + defaultToken: Type.Boolean({ default: true }), }); export type WebUiConfigType = Static; @@ -88,7 +89,7 @@ export class WebUiConfigWrapper { if (currentConfig.token !== oldToken) { throw new Error('旧 token 不匹配'); } - await this.UpdateWebUIConfig({ token: newToken }); + await this.UpdateWebUIConfig({ token: newToken, defaultToken: false }); } // 获取日志文件夹路径