cursor-init/tasks/M2-基础用户系统-开发PRD.md
HeXiaoLong:Suanier 0a74b7fb35 feat: 完成邮件发送服务集成
- 实现完整的邮件发送服务类,支持重试机制和错误处理

- 集成5种邮件模板(激活、密码重置、欢迎、通知、密码修改)

- 创建Elysia邮件服务插件,支持便捷方法调用

- 添加完整的TypeScript类型定义和配置文件

- 编写全面的测试用例,覆盖所有功能

- 支持SMTP连接池、健康检查和状态监控

关联M2基础用户系统开发任务
2025-07-04 18:17:31 +08:00

234 lines
7.3 KiB
Markdown
Raw Permalink 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.

# 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 运维支持
- 容器化部署
- 监控体系完善
- 自动化运维
- 灾备方案