Files
new-api-key-usage/docs/design/交互设计-登录与会话.md
T
skycurtain 34a7823e1a feat(web): 根路径与未知路径默认进入成员端
管理端入口形态待定,当前经地址栏 /admin 进入;交互设计访问拓扑同步。
2026-10-10 16:47:01 +08:00

49 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 交互设计 · 登录与会话
> 两个世界的入口设计:管理面登录页、空库三态(静默重建 / 引导页)、改密表单、成员登录壳。访问主体模型的交互落点(R11 裁决)。
| 项目 | 内容 |
|------|------|
| 状态 | 定稿(2026-10-01) |
| 关联 | 《交互设计-总览与共性》(导航与状态模式)· `users表字段设计.md` 3.1(空库双通道)· `members表字段设计.md`(令牌)· `sessions表字段设计.md` |
| 页面 | 管理面登录页、引导页、账号设置(改密)、成员登录壳 |
---
## 1. 管理面登录页
- **唯一元素**:用户名、密码、登录按钮——无「忘记密码」链接(重置路径是服务器侧删行,见 users 3.1,不设界面入口)
- 提交:失败 → 「用户名或密码错误」(通用提示);成功 → 建会话(HttpOnly cookie)→ 落地全员总览
- **空库三态在此路由内分流**(前端请求管理面入口时后端判定状态):
```
GET 管理面入口
├─ users 非空 ────────── 登录页(如常)
├─ 空库 + env 凭证在 ─── 后端静默重建 → 登录页(密码即 env 凭证,用户无感)
└─ 空库 + env 凭证无 ─── 引导页(见 §2)
```
## 2. 引导页(空库兜底,一次性)
- 出现条件:`users` 空且 env 无引导凭证——重置密码时的兜底通道
- 表单:用户名、密码、确认密码;提交 → 落库 → 直接进入登录态(免二次登录)
- 页头说明文案:「系统检测到管理员尚未初始化——请设置管理员账号」
- **永不复现**:`users` 非空后此页面不再可能出现(后端状态判定保证)
- 安全提示(页面脚注):「请尽快完成设置——初始化完成前,此页面对任何访问者可见」
## 3. 账号设置(改密)
- 侧边栏「账号设置」:旧密码、新密码、确认新密码
- 成功 → 提示「密码已更新;其他设备的登录已失效」(**删除其他会话行、保留当前**——sessions 可吊销能力的运用)
- 失败 → 「旧密码不正确」
## 4. 成员登录壳
- **唯一入口**:令牌输入框(单字段)+ 进入按钮;**根路径 `/` 默认落到本页**(已持令牌则进成员总览);管理面入口形态(是否在界面露出)待定,当前经地址栏 `/admin` 进入
- 提交 → 服务端哈希比对 + `status` 检查:
- 通过 → 令牌存 sessionStorage → 进入成员视图(侧边栏布局,落地「总览」,见《交互设计-成员视图》)
- 失败/停用 → 「令牌无效或已停用」(同一提示,不泄露停用与错误的区别——成员侧无需区分,反正都是找作者)
- 页面氛围:与登录页同构但**视觉上明确这是「成员入口」**(页头「成员入口」标识),防止你自己走错门
- 无「找回令牌」链接:丢了找作者重发(裁决语义,界面不设自助入口)
- 关闭标签 → sessionStorage 清除 → 下次重输(一个月一次的成本,换来零凭证持久化)