feat: PSK 版本化管理 + DB 表 + 管理后台增删启禁

- V4 迁移: psks 表 (version, secret, description, is_active)
- PskService: 启动导入 PAR_MEDIABOT_PSK → v1, verify 遍历所有活跃 PSK
- HmacAuthInterceptor: PSK 签名优先验签,精简为 Bearer/PSK 双路径
- AdminController: GET/POST /psks + toggle 启禁
- AuthController: register/recover 改用 PskService 验证
- docker-compose.yml 新增 PAR_MEDIABOT_PSK 环境变量

mediabot 端只需: X-Signature = HMAC(PSK, 'email:ts')
This commit is contained in:
mediabot-pt
2026-06-29 16:52:20 +08:00
parent 11d0840e42
commit 5304449de6
8 changed files with 224 additions and 72 deletions

View File

@@ -0,0 +1,11 @@
-- PAR Flyway V4: PSK 版本管理
CREATE TABLE psks (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
version VARCHAR(20) NOT NULL COMMENT 'PSK 版本号(如 v1, v2)',
secret VARCHAR(255) NOT NULL COMMENT 'PSK 密钥值',
description VARCHAR(200) COMMENT '描述(哪个客户端在用)',
is_active TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否启用',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (id),
UNIQUE KEY uk_version (version)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PSK 版本管理表';