
- 实现完整的邮件发送服务类,支持重试机制和错误处理 - 集成5种邮件模板(激活、密码重置、欢迎、通知、密码修改) - 创建Elysia邮件服务插件,支持便捷方法调用 - 添加完整的TypeScript类型定义和配置文件 - 编写全面的测试用例,覆盖所有功能 - 支持SMTP连接池、健康检查和状态监控 关联M2基础用户系统开发任务
234 lines
7.3 KiB
Markdown
234 lines
7.3 KiB
Markdown
# M2 - 基础用户系统 - 开发PRD
|
||
|
||
## 1. 项目概述
|
||
|
||
### 1.1 项目背景
|
||
基于星撰个人综合平台的M2阶段需求,开发完整的基础用户系统。该系统将为后续的博客系统、个人空间、阅读系统等功能模块提供统一的用户管理和权限控制基础。
|
||
|
||
### 1.2 项目目标
|
||
- 构建安全可靠的用户认证和授权体系
|
||
- 实现灵活的角色和权限管理
|
||
- 提供完整的用户生命周期管理
|
||
- 建立可扩展的组织架构管理
|
||
- 为后续功能模块提供统一的用户服务
|
||
|
||
### 1.3 项目范围
|
||
本次开发包含以下核心模块:
|
||
- **认证模块**:注册、登录、激活、密码管理
|
||
- **用户管理模块**:用户CRUD、信息管理、状态管理
|
||
- **角色权限模块**:角色管理、权限分配、权限验证
|
||
- **组织架构模块**:组织管理、用户组织关系
|
||
- **系统基础模块**:字典管理、标签管理、日志审计
|
||
|
||
## 2. 功能规划
|
||
|
||
### 2.1 核心功能清单
|
||
|
||
#### 2.1.1 认证模块 (Auth)
|
||
| 功能 | 优先级 | 状态 | 接口 |
|
||
|------|--------|------|------|
|
||
| 用户注册 | P0 | 待开发 | POST /auth/register |
|
||
| 邮箱激活 | P0 | 待开发 | POST /auth/activate |
|
||
| 用户登录 | P0 | 待开发 | POST /auth/login |
|
||
| Token刷新 | P0 | 待开发 | POST /auth/refresh |
|
||
| 退出登录 | P0 | 待开发 | POST /auth/logout |
|
||
| 找回密码 | P1 | 待开发 | POST /auth/password/reset-request |
|
||
| 重置密码 | P1 | 待开发 | POST /auth/password/reset-confirm |
|
||
| 图形验证码 | P1 | 待开发 | GET /auth/captcha |
|
||
|
||
#### 2.1.2 用户管理模块 (User)
|
||
| 功能 | 优先级 | 状态 | 接口 |
|
||
|------|--------|------|------|
|
||
| 获取当前用户信息 | P0 | 待开发 | GET /users/me |
|
||
| 用户列表查询 | P0 | 待开发 | GET /users |
|
||
| 创建用户 | P0 | 待开发 | POST /users |
|
||
| 更新用户信息 | P0 | 待开发 | PUT /users/{id} |
|
||
| 删除用户 | P1 | 待开发 | DELETE /users/{id} |
|
||
| 修改密码 | P0 | 待开发 | PUT /users/me/password |
|
||
| 用户详情 | P1 | 待开发 | GET /users/{id} |
|
||
| 批量操作 | P2 | 待开发 | POST /users/batch |
|
||
|
||
#### 2.1.3 角色权限模块 (Role & Permission)
|
||
| 功能 | 优先级 | 状态 | 接口 |
|
||
|------|--------|------|------|
|
||
| 角色列表 | P0 | 待开发 | GET /roles |
|
||
| 创建角色 | P0 | 待开发 | POST /roles |
|
||
| 更新角色 | P0 | 待开发 | PUT /roles/{id} |
|
||
| 删除角色 | P1 | 待开发 | DELETE /roles/{id} |
|
||
| 权限列表 | P0 | 待开发 | GET /permissions |
|
||
| 权限分配 | P0 | 待开发 | POST /roles/{id}/permissions |
|
||
| 用户角色分配 | P0 | 待开发 | POST /users/{id}/roles |
|
||
|
||
#### 2.1.4 组织架构模块 (Organization)
|
||
| 功能 | 优先级 | 状态 | 接口 |
|
||
|------|--------|------|------|
|
||
| 组织列表 | P1 | 待开发 | GET /organizations |
|
||
| 创建组织 | P1 | 待开发 | POST /organizations |
|
||
| 更新组织 | P1 | 待开发 | PUT /organizations/{id} |
|
||
| 删除组织 | P2 | 待开发 | DELETE /organizations/{id} |
|
||
| 用户组织关系 | P1 | 待开发 | POST /users/{id}/organizations |
|
||
|
||
#### 2.1.5 系统基础模块 (System)
|
||
| 功能 | 优先级 | 状态 | 接口 |
|
||
|------|--------|------|------|
|
||
| 字典类型管理 | P1 | 待开发 | CRUD /dict-types |
|
||
| 字典项管理 | P1 | 待开发 | CRUD /dict-items |
|
||
| 标签管理 | P1 | 待开发 | CRUD /tags |
|
||
| 操作日志 | P2 | 待开发 | GET /logs/operations |
|
||
| 登录日志 | P2 | 待开发 | GET /logs/logins |
|
||
|
||
### 2.2 技术架构
|
||
|
||
#### 2.2.1 后端架构
|
||
- **框架**:Elysia (Bun)
|
||
- **数据库**:MySQL + Drizzle ORM
|
||
- **缓存**:Redis
|
||
- **认证**:JWT + RefreshToken
|
||
- **日志**:Winston
|
||
- **测试**:Vitest
|
||
- **API文档**:Swagger
|
||
|
||
#### 2.2.2 数据存储策略
|
||
- **主数据**:MySQL存储
|
||
- **缓存数据**:Redis存储用户会话、验证码、权限缓存
|
||
- **文件存储**:本地存储 + 后续可扩展OSS
|
||
|
||
#### 2.2.3 安全策略
|
||
- **密码加密**:bcrypt (cost=12)
|
||
- **JWT策略**:AccessToken(2小时) + RefreshToken(7天)
|
||
- **权限控制**:RBAC模型
|
||
- **防暴力破解**:登录失败锁定
|
||
- **数据验证**:输入参数严格校验
|
||
|
||
## 3. 开发计划
|
||
|
||
### 3.1 阶段划分
|
||
|
||
#### 第一阶段:基础认证系统 (1-2周)
|
||
**目标**:完成用户注册、登录、基础用户管理功能
|
||
|
||
**核心任务**:
|
||
- 数据库表结构完善
|
||
- 用户注册/登录接口
|
||
- JWT认证中间件
|
||
- 基础用户管理接口
|
||
- 单元测试编写
|
||
|
||
**交付物**:
|
||
- 可工作的用户注册登录系统
|
||
- 完整的API文档
|
||
- 基础测试用例
|
||
|
||
#### 第二阶段:角色权限系统 (1-2周)
|
||
**目标**:完成RBAC权限控制体系
|
||
|
||
**核心任务**:
|
||
- 角色管理功能
|
||
- 权限管理功能
|
||
- 权限验证中间件
|
||
- 用户角色分配
|
||
- 权限缓存机制
|
||
|
||
**交付物**:
|
||
- 完整的RBAC系统
|
||
- 权限控制中间件
|
||
- 管理员操作界面接口
|
||
|
||
#### 第三阶段:系统完善 (1周)
|
||
**目标**:完善系统功能,优化性能
|
||
|
||
**核心任务**:
|
||
- 组织架构管理
|
||
- 字典标签管理
|
||
- 操作日志记录
|
||
- 性能优化
|
||
- 安全加固
|
||
|
||
**交付物**:
|
||
- 完整的用户系统
|
||
- 性能测试报告
|
||
- 部署文档
|
||
|
||
### 3.2 里程碑计划
|
||
|
||
| 里程碑 | 时间节点 | 主要交付物 |
|
||
|--------|----------|------------|
|
||
| M2.1 | 第1周末 | 基础认证功能完成 |
|
||
| M2.2 | 第2周末 | 用户管理功能完成 |
|
||
| M2.3 | 第3周末 | 角色权限功能完成 |
|
||
| M2.4 | 第4周末 | 系统完善,发布v1.0 |
|
||
|
||
## 4. 质量保障
|
||
|
||
### 4.1 测试策略
|
||
- **单元测试**:覆盖率 > 80%
|
||
- **集成测试**:关键业务流程测试
|
||
- **性能测试**:并发用户1000+
|
||
- **安全测试**:OWASP Top 10检查
|
||
|
||
### 4.2 代码质量
|
||
- **代码规范**:ESLint + Prettier
|
||
- **类型安全**:TypeScript严格模式
|
||
- **代码审查**:Pull Request必须审查
|
||
- **文档完善**:接口文档、部署文档
|
||
|
||
### 4.3 监控告警
|
||
- **API监控**:响应时间、错误率
|
||
- **数据库监控**:连接数、慢查询
|
||
- **缓存监控**:Redis状态监控
|
||
- **业务监控**:用户注册、登录统计
|
||
|
||
## 5. 风险评估
|
||
|
||
### 5.1 技术风险
|
||
| 风险 | 概率 | 影响 | 应对策略 |
|
||
|------|------|------|----------|
|
||
| 数据库性能瓶颈 | 中 | 高 | 索引优化、查询优化 |
|
||
| JWT安全性问题 | 低 | 高 | RefreshToken轮转、黑名单机制 |
|
||
| 并发数据一致性 | 中 | 中 | 乐观锁、Redis锁 |
|
||
|
||
### 5.2 进度风险
|
||
| 风险 | 概率 | 影响 | 应对策略 |
|
||
|------|------|------|----------|
|
||
| 需求变更 | 中 | 中 | 敏捷开发、版本控制 |
|
||
| 技术难点 | 低 | 中 | 技术预研、备选方案 |
|
||
| 测试时间不足 | 中 | 高 | 并行开发测试、自动化测试 |
|
||
|
||
## 6. 成功标准
|
||
|
||
### 6.1 功能指标
|
||
- ✅ 用户注册成功率 > 95%
|
||
- ✅ 登录响应时间 < 200ms
|
||
- ✅ 权限验证准确率 = 100%
|
||
- ✅ 密码安全强度符合规范
|
||
|
||
### 6.2 技术指标
|
||
- ✅ API可用性 > 99.9%
|
||
- ✅ 单元测试覆盖率 > 80%
|
||
- ✅ 代码质量评分 > 8.0
|
||
- ✅ 安全漏洞 = 0
|
||
|
||
### 6.3 用户体验指标
|
||
- ✅ 注册流程步骤 ≤ 3步
|
||
- ✅ 忘记密码找回成功率 > 90%
|
||
- ✅ 用户反馈满意度 > 85%
|
||
|
||
## 7. 后续规划
|
||
|
||
### 7.1 功能扩展
|
||
- OAuth第三方登录(微信、GitHub等)
|
||
- 两步验证(2FA)
|
||
- 单点登录(SSO)
|
||
- 用户行为分析
|
||
|
||
### 7.2 性能优化
|
||
- 分库分表策略
|
||
- 缓存策略优化
|
||
- CDN接入
|
||
- 数据库读写分离
|
||
|
||
### 7.3 运维支持
|
||
- 容器化部署
|
||
- 监控体系完善
|
||
- 自动化运维
|
||
- 灾备方案 |