Skip to content

feat(accounts): add personal center and configurable session limits - #26

Merged
mcoder2014 merged 1 commit into
masterfrom
feat/cq/account_center
Sep 18, 2026
Merged

mcoder2014 merged 1 commit into
masterfrom
feat/cq/account_center

Conversation

@mcoder2014

Copy link
Copy Markdown
Owner

数据库账号原来无法辨认和选择退出某个登录,也缺少头像和管理员资料重置。新增完整个人中心、当前身份展示和登录管理;默认每人最多同时保留 5 个有效网站会话,管理员可在站点设置调整为 1–100。满额拒绝新登录并保留已有会话,网页登录和旧 RSA 签发共享限制。

主要变化:

  • 昵称可清空并回退用户名;JPEG/PNG 裁剪上传、移除与管理员重置;全站成员、所有者、邀请、评论、审计优先显示当前昵称和头像。原历史记录保留,普通评论响应不回退已重置的历史昵称。
  • 登录管理显示当前会话、登录 IP/UA/客户端/系统/时间/剩余期限,支持选择退出及退出其他全部;应用凭证、Basic 和 Cookie 兑换不占网站登录名额。管理员可查看数量与详情、沿用封禁和全量撤销,资料重置记录审计。
  • 同一用户锁下以当前读检查名额,覆盖并发签发和旧 RR 快照;新增资料写入事务内复核会话。存量策略在原 SHA 校验后补默认 5,新发布严格校验;旧配置与 V1 导入摘要不改写。
  • 有效期范围索引配合用户/认证版本常量,<=100 有效会话时列表使用范围索引,较大合法存量保留分页索引。管理员一次批量 OR 聚合;数量不截断。ID 生成器改为正数、进程内递增,保留旧负会话 ID 的兼容读取与退出。

验证在实际 Pi 的独立目录、合成 MariaDB/Redis 和回环 HTTPS nginx 执行,浏览器通过 pi_out SSH 隧道访问:Go 全包构建及主服务/维护工具产物通过;CI 范围 31 个包、475 项测试(含子用例)通过;前端 82/82 与生产构建通过;真实页面 13 项检查通过,覆盖资料/头像/改密/资料重置、5 个登录/第 6 个拒绝、释放名额、管理员调高调低及旧策略 UI 回滚。12/32 个混合并发登录各只签发 5 条。迁移/维护三包及 ID race 检查通过,nginx/systemd 模板、公开部署检查与两张 Mermaid 图通过。

SQL 实测:单用户 10,000 历史/100 有效,列表仅扫描 99 条;5 有效时排除当前后扫描 4 条。100 用户/500 有效/500 旧版本未到期/9,000 过期,聚合扫描 500 条。遗留 10,000 全有效仍仅扫描 22/21 条获得首页/下一页,总数保持 10,000。42 项查询结果对照一致。

详情统计的并发回归先复现旧版本/新统计条件冲突导致的漏数,再将账号与数量读取合入同一只读快照。新增回归和全部 23 项会话/容量测试通过:读 V1 后并发提交 V2 的详情保持 V1/1,刷新后为 V2/1;旧 Token 拒绝、新 Token 可用。

上线需先执行独立 accounts-maintain 的 11 阶段增量迁移,再部署匹配后端、代理和前端。已发布的两个旧 DDL 不变;真实 CLI 10→11 阶段续升与重跑保留原标记及导入摘要。正式服务及数据库未替换。新策略发布后退至更旧后端需准备兼容配置;维护工具与每日 timer 的安装顺序见 docs/account-center-operations.md,详细设计及验证见 docs/specs/account-center/。

@mcoder2014
mcoder2014 merged commit 176bce3 into master Sep 18, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant