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