From 94c0d2a398b8aa38d041d97269599bd0a7ccac10 Mon Sep 17 00:00:00 2001
From: mediabot-pt <295750538+mediabot-pt@users.noreply.github.com>
Date: Mon, 29 Jun 2026 22:09:23 +0800
Subject: [PATCH] =?UTF-8?q?feat(par):=20=E7=AE=A1=E7=90=86=E5=90=8E?=
=?UTF-8?q?=E5=8F=B0=E5=A2=9E=E5=8A=A0=20PSK=20=E7=AE=A1=E7=90=86=E9=A1=B5?=
=?UTF-8?q?=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 新增 /psks 页面:列表展示、生成新PSK、启用/禁用、复制密钥
- 版本号唯一,密钥支持手动输入或随机生成
- 侧边菜单增加「PSK 管理」入口
---
web/src/api/index.js | 6 +-
web/src/router/index.js | 6 ++
web/src/views/Layout.vue | 4 +
web/src/views/Psks.vue | 204 +++++++++++++++++++++++++++++++++++++++
4 files changed, 219 insertions(+), 1 deletion(-)
create mode 100644 web/src/views/Psks.vue
diff --git a/web/src/api/index.js b/web/src/api/index.js
index eaa884c..8b7dcaf 100644
--- a/web/src/api/index.js
+++ b/web/src/api/index.js
@@ -45,7 +45,11 @@ export default {
users: {
list: () => api.get('/admin/accounts'),
setTrustLevel: (id, level) => api.post(`/admin/accounts/${id}/trust-level`, null, { params: { level } }),
-
+ },
+ psks: {
+ list: () => api.get('/admin/psks'),
+ add: (data) => api.post('/admin/psks', data),
+ toggle: (id) => api.post(`/admin/psks/${id}/toggle`)
},
health: () => api.get('/health', { baseURL: '' })
}
diff --git a/web/src/router/index.js b/web/src/router/index.js
index 1c0fe64..f702deb 100644
--- a/web/src/router/index.js
+++ b/web/src/router/index.js
@@ -35,6 +35,12 @@ const routes = [
name: 'Users',
component: () => import('../views/Users.vue'),
meta: { title: '用户管理' }
+ },
+ {
+ path: 'psks',
+ name: 'Psks',
+ component: () => import('../views/Psks.vue'),
+ meta: { title: 'PSK 管理' }
}
]
}
diff --git a/web/src/views/Layout.vue b/web/src/views/Layout.vue
index 6084447..8f2e027 100644
--- a/web/src/views/Layout.vue
+++ b/web/src/views/Layout.vue
@@ -26,6 +26,10 @@
用户管理
+
+
+ PSK 管理
+
diff --git a/web/src/views/Psks.vue b/web/src/views/Psks.vue
new file mode 100644
index 0000000..f20cdba
--- /dev/null
+++ b/web/src/views/Psks.vue
@@ -0,0 +1,204 @@
+
+
+
+
+
+
+
+ PSK(预共享密钥)用于外部客户端(如 mediabot)接入认证。
+ 每个 PSK 生成后需将密钥分发给客户端配置使用。
+
+
+
+
+
+
+
+
+
+ {{ '•'.repeat(32) }}
+ {{ row.secret }}
+
+ {{ row.showSecret ? '隐藏' : '显示' }}
+
+ 复制
+
+
+
+
+ {{ row.description || '-' }}
+
+
+
+
+
+ {{ row.isActive ? '启用' : '禁用' }}
+
+
+
+
+
+
+
+
+
+ {{ row.isActive ? '禁用' : '启用' }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 唯一标识,不可与已有版本重复
+
+
+
+
+
+
+
+ 随机生成
+
+
+
+
+ 取消
+ 生成
+
+
+
+
+
+
+
+