# 需求:后台完善P0+P1:引导账号显形/操作审计/admin只读/会话即时失效
状态: done(2026-10-13 已上线:admin-prod be82b2cd+迁移0014;8 新例含会话失效真等秒级;线上 audit 401 闸+页面 13 标记;待 boss 重登实操确认)
归属: account-center
来源: boss 直投(会话)
日期: 2026-10-13
建议: 做,boss「默认的用户怎么没有显示,你完整看下后台…按 P0→P1 顺序推进」——后台四类架构缺口:bootstrap 默认用户不在列表、写动作零审计、admin 角色无分级、停用/重置口令杀不掉旧会话

## 现状

用户管理节上线后,boss 实登发现「默认的用户」(共享密码 ADMIN_PASSWORD 的 bootstrap 身份)不显示——它不是 `admin_users` 表行,只在列表下方一行小字里存在;协作者视角下后台「有哪些人」不完整。更深三处:①赠会员/终止/吊销会话/签码/作废/账号增改全部不落任何记录,多操作者开放后出事无法回答「谁干的」;②admin 角色只挡账号管理节,业务写端点不分区(开号=开老板权限);③会话签名密钥是全局 ADMIN_PASSWORD,个人级失效做不到,停用最长拖 12h。

## 方案

P0(显形+审计)→ P1(分级+即时失效),account_center 单波:

1. 迁移 0014:`admin_audit`(ts/操作者/角色快照/动作/对象/详情 JSON,口令永不入表)+ `admin_users.revoked_at`;
2. bootstrap 固定首行(内置共享密码、不可停用、最近登录指向日志)+ 顶栏「当前身份 · 角色」;
3. 八个写路径入审计(gift/end/revoke-sessions、license issue/revoke/batch-delete、operator create/update/self_password、session_login),新增「操作日志」视图(按操作者/动作/天数筛,分页,owner 可读);审计写失败=动作报错,绝不静默;
4. `requireOwner` 闸:admin 角色对全部业务写端点 403(前端同步隐藏写按钮,`PATCH /me` 改自己口令不受闸);
5. cookie 升 `exp.iat.identity.sig`:停用/重置口令/改角色推 `revoked_at`,iat 更早会话立即失权;重新启用不复活旧会话(须重登)。旧形态 cookie 上线即作废(全员重登一次,注册≈0 窗口)。

## 验收标准

- [x] account_center commit `5a64f2b`(12 文件;真 SQLite 用例 admin 84/84,新增 admin-audit 8 例:审计落行/口令不入表/admin 写 403 不落库/重置口令杀会话/停用即失权/重启用不复活/旧 cookie 拒绝)+ api 223/223 + `pnpm check` 绿
- [x] prod 上线:迁移 0014 apply ✅ + admin-prod 版本 `be82b2cd`;线上实证=未登录 `/v1/admin/audit` 401、后台页含 audit 视图/bootstrap 行/role-readonly/whoami 标记 13 处、healthz ok
- [x] 双语+单页左导航纪律保持(「操作日志」为现有后台新增视图节,不建新网页)
- [ ] boss 实操确认:重登一次后,「用户管理」见 bootstrap 行、「操作日志」出登录记录

## 实施状态

已上线(2026-10-13)。P2(会员来源史/概览按来源分布/首登强制改密)与 P3(2FA)未在本票范围,待排工。
