209 Commits

Author SHA1 Message Date
mediabot-pt
aed8035995 feat: 确定性密钥推导 + HMAC 自动恢复账户
- HmacUtil.deriveApiSecret/deriveApiKey: email+HMAC_SECRET 确定性推导
- 注册时用推导值替代随机生成(同 email 永远同 key)
- HMAC 拦截器:未知邮箱但签名匹配 → 自动创建账户
- 重装后 mediabot 直接发 HMAC 请求即可恢复,无需重新注册

核心: apiSecret = HMAC(email + ':par-api-secret', HMAC_SECRET)
      同一 email + 同一 HMAC_SECRET → 永久不变的凭据
2026-06-29 16:38:37 +08:00
mediabot-pt
92f4ed7a2a fix: 注册密码改为可选,机器注册无需密码
- RegisterRequest.password 移除 @NotBlank
- 密码为空时自动生成随机密码
- mediabot 只需 email 即可注册获得 apiKey/apiSecret
- 重装后同邮箱重新注册即可,无需记住密码
2026-06-29 16:36:24 +08:00
mediabot-pt
26c686fa69 feat: 注册时自动生成 API Key,mediabot 自注册即可获得凭据
- AccountService.register() 自动生成 api_key + api_secret
- POST /auth/register 返回 apiKey + apiSecret(一次性)
- POST /auth/login 返回 apiKey(不含 secret)
- V3 迁移自动为已有管理员生成 key

mediabot 集成流程:
  1. POST /auth/register → 得到 apiKey + apiSecret → 保存
  2. 管理员在后台提升 trustLevel 为 TRUSTED
  3. 用 apiKey/apiSecret 做 HMAC 签名调用写入接口
2026-06-29 16:34:39 +08:00
mediabot-pt
2d91552ea4 feat: API Key 静默认证 + 多邮箱支持
核心改动:
- V3 迁移: accounts 加 api_key/api_secret + account_emails 多邮箱关联表
- HMAC 验签改用 api_secret 替代密码哈希(改密码不影响集成)
- findByAnyEmail 支持主邮箱 + 关联邮箱查找
- AdminController: API Key 生成/重置 + 邮箱绑定/解绑/列表
- 前端 Users.vue: API Key 列 + 生成按钮 + Secret 复制弹窗
- 现有邮箱自动迁移到 account_emails 表

认证流程:
  旧: X-Email → account.email → passwordHash 作 HMAC key
  新: X-Email → account_emails ∪ account.email → api_secret 作 HMAC key
2026-06-29 16:30:53 +08:00
mediabot-pt
7575d65428 fix: 补全管理后台缺失的 API 端点 + 修复 @RequestParam 参数名
- AdminController: 新增 GET /admin/accounts 用户列表
- ConfigController: 新增 GET /configs/pending 待审核列表
- AdminController: 修复 @RequestParam 缺少参数名导致参数绑定失败
- SiteConfigMapper/ConfigService: 新增 selectPending/listPendingConfigs
2026-06-29 14:41:36 +08:00
mediabot-pt
bb26695c34 fix: 补回 @RequiredArgsConstructor 修复编译失败 + 移除过时 Maven 参数 2026-06-29 14:29:11 +08:00
mediabot-pt
c15016d57c feat: Bearer Token 认证,修复 Web 管理后台 401 问题
- HmacAuthInterceptor 增加 Bearer Token 优先认证(Web 管理后台)
- AuthController.login 使用 hmac.secret 签发 24h 有效 token
- AccountDTO 新增 token 字段(@JsonInclude NON_NULL)
- 前端 Login.vue 存储登录返回的 token
- 原有 HMAC 签名认证不受影响(外部 API 客户端继续可用)
2026-06-29 14:20:29 +08:00
mediabot-pt
d2c226c25f feat: 添加 Flyway V2 迁移,自动初始化默认管理员账号
- 首次部署自动创建 admin@par.local (trust_level=2)
- 已有账号自动提权(member→admin)
- 幂等安全,重复执行无副作用
- 使用项目 PasswordUtil 生成 bcrypt 哈希,无外部依赖
2026-06-29 14:14:16 +08:00
mediabot-pt
baa04b5138 Initial commit: PAR Server with Spring Boot 3.2, MyBatis-Plus, Flyway 2026-06-29 10:43:24 +08:00