
- 实现完整的邮件发送服务类,支持重试机制和错误处理 - 集成5种邮件模板(激活、密码重置、欢迎、通知、密码修改) - 创建Elysia邮件服务插件,支持便捷方法调用 - 添加完整的TypeScript类型定义和配置文件 - 编写全面的测试用例,覆盖所有功能 - 支持SMTP连接池、健康检查和状态监控 关联M2基础用户系统开发任务
7.3 KiB
7.3 KiB
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 运维支持
- 容器化部署
- 监控体系完善
- 自动化运维
- 灾备方案