33 lines
1.2 KiB
Markdown
33 lines
1.2 KiB
Markdown
|
|
# DV-0001:认证与会话 – 规格(Spec)
|
|||
|
|
|
|||
|
|
- **状态**:Implemented
|
|||
|
|
- **关联 ADR**:ADR-0003
|
|||
|
|
|
|||
|
|
## 目标
|
|||
|
|
提供安全的用户认证与会话管理,为所有受保护资源提供身份基础。
|
|||
|
|
|
|||
|
|
## 范围
|
|||
|
|
- **In**:注册、登录、登出、修改密码、个人资料、头像上传、JWT Bearer + Redis 双校验。
|
|||
|
|
- **Out**:第三方 SSO/OAuth 登录。
|
|||
|
|
|
|||
|
|
## 用户故事
|
|||
|
|
> 作为用户,我希望登录一次后持续访问项目/文档,以便高效工作而不反复输入凭据。
|
|||
|
|
|
|||
|
|
## 功能需求(FR)
|
|||
|
|
| ID | 需求描述 | 验收要点 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| FR-1 | 注册/登录/登出、改密、资料、头像 | 登录返回 JWT;退出后 token 失效 |
|
|||
|
|
| FR-1a | 每次请求经 get_current_user 校验 | Redis 缓存 + JWT 完整性 + 用户状态;禁用即拒绝 |
|
|||
|
|
|
|||
|
|
## 非功能需求(NFR)
|
|||
|
|
| ID | 需求 |
|
|||
|
|
| --- | --- |
|
|||
|
|
| NFR-1 | 密码 bcrypt 哈希存储,绝不明文 |
|
|||
|
|
| NFR-2 | JWT + Redis Token 缓存双校验;token 存 Redis 可失效 |
|
|||
|
|
| NFR-9 | 敏感日志脱敏(缺陷,见 OI-1) |
|
|||
|
|
|
|||
|
|
## 边界与约束
|
|||
|
|
- 使用 OAuth2 password bearer;token 有效期 ACCESS_TOKEN_EXPIRE_MINUTES=1440。
|
|||
|
|
- 用户被禁用(status!=1)即拒绝访问。
|
|||
|
|
|