Files
makemd/docs/00_Business/tasks/backend/15_auth.md
wurenzhi 48a78137c5 refactor(terminology): 统一术语标准并优化代码类型安全
- 将B2B统一为TOB术语
- 将状态值统一为大写格式
- 优化类型声明,避免使用any
- 将float类型替换为decimal以提高精度
- 新增术语标准化文档
- 优化路由结构和菜单分类
- 添加TypeORM实体类
- 增强加密模块安全性
- 重构前端路由结构
- 完善任务模板和验收标准
2026-03-20 09:43:50 +08:00

114 lines
3.8 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.
# 认证服务后端任务
## 任务列表
| Task ID | 闭环关联 | 任务描述 | 输入 | 输出 | 触发条件 | 状态 | 优先级 | 依赖 | 预计耗时 | 负责人 | 完成时间 |
| ---------- | ---- | ------ | -------- | ---- | ---- | ----------- | --- | ---------- | ---- | ------------ | -------- |
| BE-AUTH001 | 认证服务 | 用户认证接口 | 用户名, 密码 | 认证令牌 | 前端提交 | ✅ completed | P2 | - | 10h | AI-Backend-5 | 2026-03-20 |
| BE-AUTH002 | 认证服务 | 权限管理 | 用户ID, 权限 | 权限列表 | 前端请求 | ✅ completed | P2 | BE-AUTH001 | 8h | AI-Backend-5 | 2026-03-20 |
| BE-AUTH003 | 认证服务 | 会话管理 | 用户ID, 令牌 | 会话信息 | 请求验证 | ✅ completed | P2 | BE-AUTH001 | 8h | AI-Backend-5 | 2026-03-20 |
## 相关闭环
- 认证服务
## 依赖关系
```
BE-AUTH001 ─┬─► BE-AUTH002
└─► BE-AUTH003
```
## 数据库表结构
### cf_user
| 字段 | 类型 | 说明 |
| ---- | ---- | ---- |
| id | string | 用户ID |
| tenant_id | string | 租户ID |
| username | string | 用户名 |
| password_hash | string | 密码哈希 |
| email | string | 邮箱 |
| status | enum | ACTIVE/INACTIVE/LOCKED |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |
### cf_role
| 字段 | 类型 | 说明 |
| ---- | ---- | ---- |
| id | string | 角色ID |
| name | string | 角色名称 |
| description | text | 角色描述 |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |
### cf_permission
| 字段 | 类型 | 说明 |
| ---- | ---- | ---- |
| id | string | 权限ID |
| name | string | 权限名称 |
| description | text | 权限描述 |
| created_at | datetime | 创建时间 |
| updated_at | datetime | 更新时间 |
### cf_user_role
| 字段 | 类型 | 说明 |
| ---- | ---- | ---- |
| user_id | string | 用户ID |
| role_id | string | 角色ID |
| created_at | datetime | 创建时间 |
### cf_role_permission
| 字段 | 类型 | 说明 |
| ---- | ---- | ---- |
| role_id | string | 角色ID |
| permission_id | string | 权限ID |
| created_at | datetime | 创建时间 |
## API端点
### 认证服务API
- `POST /api/auth/login` - 用户登录
- `POST /api/auth/logout` - 用户登出
- `POST /api/auth/refresh` - 刷新令牌
- `GET /api/auth/me` - 获取当前用户信息
- `GET /api/auth/roles` - 获取角色列表
- `POST /api/auth/roles` - 创建角色
- `GET /api/auth/roles/:id` - 获取角色详情
- `GET /api/auth/permissions` - 获取权限列表
- `POST /api/auth/assign-role` - 分配角色给用户
## 验收标准
- [ ] 用户认证接口能正确验证用户身份并颁发令牌
- [ ] 权限管理能准确控制用户权限
- [ ] 会话管理能有效管理用户会话
- [ ] 所有接口响应时间不超过1秒
- [ ] 数据一致性得到保证
## 测试要求
- [ ] 单元测试:覆盖认证和权限管理逻辑
- [ ] 集成测试:验证与用户系统的交互
- [ ] 端到端测试:模拟完整的认证流程
- [ ] 安全测试:测试认证系统的安全性
## 风险提示
- **风险点1**:密码安全 - 应对措施:使用强哈希算法和盐值
- **风险点2**:令牌泄露 - 应对措施:实现令牌过期和刷新机制
- **风险点3**:权限越权 - 应对措施:实现细粒度权限控制和权限校验
## 性能要求
- 响应时间:平均响应时间 < 1秒
- 并发处理支持500个并发请求
- 数据处理能处理10000次认证请求/小时
## 安全要求
- 权限控制:严格的基于角色的权限控制
- 数据加密:密码和敏感数据加密存储
- 审计日志:所有认证和权限操作需记录详细日志
- 输入验证:严格验证所有认证相关输入
- 防止暴力破解:实现登录尝试限制和验证码机制