开放多项目大屏免登录访问

需求描述:/admin/display 需要无需管理员登录即可直接查看多项目公开运行状态。

实现思路:新增公开字段白名单接口与独立大屏页面,移除该路由的管理员会话依赖,同时保留 /api/admin/overview 的鉴权并补充隐私、路由和页面回归测试。

验证:Go 全量测试通过;前端 18 个测试文件共 59 项通过,TypeScript 检查通过。
This commit is contained in:
2026-07-31 16:36:03 +08:00
parent 17d296263c
commit d782227a23
15 changed files with 262 additions and 4 deletions

View File

@@ -4,7 +4,7 @@
在已确认的产品、技术与设计基线上,交付可运行的景区排队叫号系统纵向切片,并以自动化测试验证多项目隔离、幂等叫号与隐私边界。
## Current Phase
Phase 42运营统计模块标题区呼吸空间优化
Phase 45管理端大屏中心免登录访问
## Phases
@@ -550,3 +550,25 @@ Phase 42运营统计模块标题区呼吸空间优化
| Error | Attempt | Resolution |
|---|---:|---|
| PowerShell 下向 `rg` 传入 Unix 风格 `*_test.go` 路径通配符失败 | 1 | 后续改由 `rg` 自身的 `-g` 过滤文件,不再让 Windows 解析目录通配符 |
### Phase 45: 管理端大屏中心免登录访问2026-07-31
- [x] 核对 `/admin/display` 前端路由、页面依赖与后端鉴权边界
- [x] 新增仅包含公开大屏字段的免登录接口
- [x]`/admin/display` 切换为无需管理员会话的独立页面
- [x] 补充路由、公开字段白名单与页面回归测试
- [x] 完成前后端测试、类型检查和生产构建验证
- **Status:** complete
#### Confirmed Decisions
| Decision | Result | Why it matters |
|---|---|---|
| 管理端总览接口 | `/api/admin/overview` 继续强制管理员登录 | 该接口含活动游客联系方式和后台配置,不能为大屏免登录而整体放开 |
| 公开大屏数据 | 新增字段白名单接口,仅返回项目名、公开票号、等待量、预计等待与刷新时间 | 满足多项目大屏展示,同时维持隐私与后台权限边界 |
| 前端入口 | `/admin/display` 使用独立公开页面,不挂载管理员鉴权 Provider | 未登录访问不产生登录跳转或无意义的管理员会话探测 |
#### Errors Encountered
| Error | Attempt | Resolution |
|---|---:|---|
| 首次组合补丁把内部网络路由误写为 `HandleFunc`,上下文未匹配 | 1 | 读取真实路由片段后按现有 `Handle` 行重新应用,未产生部分代码改动 |
| 普通网页读取器因域名安全校验拒绝打开线上 URL | 1 | 改用只读应用内浏览器核对,不绕过安全校验 |
| 应用内浏览器两次打开线上 URL 均超时 | 2 | 按有界重试停止继续访问;保留“代码已完成、线上尚未部署验证”的明确边界 |