main #1

Closed
ANGJustinl wants to merge 0 commits from main into zulip_dev
Owner
No description provided.
ANGJustinl added 44 commits 2025-12-25 23:10:26 +08:00
revert 修复文档错误
Reviewed-on: datawhale/whale-town-end#17
Reviewed-by: moyin <2443444649@qq.com>
- 更新README.md:添加管理员后台系统介绍,更新测试统计为154个用例
- 更新CONTRIBUTORS.md:补充jianuo的管理员后台开发贡献,更新项目里程碑
- 更新DEPLOYMENT.md:完善前后端分离部署方案,添加管理员后台配置说明
- 反映最新管理员后台功能的部署要求和配置变更
Reviewed-on: datawhale/whale-town-end#19
- 重构文档结构,按功能模块分类
- 新增应用状态接口 (GET /)
- 完善用户认证接口,新增4个邮箱验证相关接口
- 新增管理员后台接口,包含用户管理和日志管理
- 更新错误代码说明和数据验证规则
- 完善使用示例和注意事项
- 更新版本日志至v1.0.0

涵盖后端所有API接口,提供完整的开发参考文档
- 重新组织docs目录结构,按功能模块分类
- 新增deployment和development目录
- 更新API文档结构
- 添加客户端README文档
- 移除过时的文档文件
- 新增auth模块处理认证逻辑
- 新增security模块处理安全相关功能
- 新增user-mgmt模块管理用户相关操作
- 新增shared模块存放共享组件
- 重构admin模块,添加DTO和Guards
- 为admin模块添加测试文件结构
- 更新用户实体和DTO结构
- 重构用户服务逻辑
- 更新登录核心服务
- 调整应用模块配置以适配新的业务模块结构
- 更新应用控制器和服务
- 删除旧的DTO文件(已迁移到对应业务模块)
- 删除旧的测试目录结构
- 删除过时的API目录
- 更新package.json配置
- 移除不再使用的文件
Reviewed-on: datawhale/whale-town-end#20
- 修复登录控制器HTTP状态码问题,现在根据业务结果返回正确状态码
- 调整注册接口限流配置,从3次/5分钟放宽至10次/5分钟(开发环境)
- 新增清除限流记录的调试接口,便于开发测试
- 更新API文档,反映状态码修复和限流调整
- 添加测试脚本验证修复效果

主要修复:
- 业务失败时返回400/401而非200/201状态码
- 注册、登录、GitHub OAuth等接口现在正确处理错误状态码
- 限流配置更适合开发环境测试需求
Reviewed-on: datawhale/whale-town-end#21
核心修复:
- 调整注册流程检查顺序,先验证用户存在性再验证验证码
- 修复HTTP状态码问题,业务失败时返回正确的错误状态码
- 优化错误处理逻辑,提供更准确的错误信息

主要变更:
- 登录核心服务:重构注册方法,优化检查顺序避免验证码无效消费
- 用户服务:分离用户创建和重复检查逻辑,提高代码复用性
- 登录控制器:修复HTTP状态码处理,根据业务结果返回正确状态码
- API文档:更新注册接口说明和错误响应示例
- 测试脚本:优化测试逻辑和注释说明

修复效果:
- 用户已存在时立即返回正确错误信息,不消费验证码
- API响应状态码准确反映业务执行结果
- 错误信息更加用户友好和准确
- 验证码使用更加合理和高效

测试验证:
- 所有核心功能测试通过
- 注册逻辑修复验证成功
- HTTP状态码修复验证成功
- 限流功能正常工作
Reviewed-on: datawhale/whale-town-end#22
- 修复文件路径冲突(business/login -> business/auth结构调整)
- 保留ANGJustinl分支的验证码登录功能
- 合并main分支的用户状态管理和项目结构改进
- 修复邮件服务中缺失的login_verification模板问题
- 更新测试用例以包含验证码登录功能
- 统一导入路径以适配新的目录结构
- 新增验证码登录接口文档 (POST /auth/verification-code-login)
- 新增发送登录验证码接口文档 (POST /auth/send-login-verification-code)
- 更新接口列表和数量统计 (21个 -> 23个接口)
- 添加验证码登录测试场景和cURL示例
- 完善错误码说明和响应格式
- 确保文档与当前实现完全一致
Reviewed-on: datawhale/whale-town-end#18
- 修正验证码登录错误码:VERIFICATION_CODE_INVALID -> VERIFICATION_CODE_LOGIN_FAILED
- 修正发送登录验证码错误码:USER_NOT_FOUND -> SEND_LOGIN_CODE_FAILED
- 添加验证码登录相关错误码到错误码表格
- 完善验证码使用说明和注意事项
- 确保文档与实际API响应完全一致
Reviewed-on: datawhale/whale-town-end#23
- 添加验证码登录接口:/auth/verification-code-login
- 添加发送登录验证码接口:/auth/send-login-verification-code
- 添加邮箱验证相关接口:send/verify/resend-email-verification
- 添加调试接口:debug-verification-code, debug-clear-throttle
- 添加应用状态接口:GET /
- 完善所有Schema定义和响应格式
- 添加测试模式和限流错误响应
- 确保OpenAPI文档与实际API完全匹配
版本升级:1.0.0  1.1.0

 新功能:
- 验证码登录功能完整实现
- 支持邮箱和手机号验证码登录
- 新增2个API接口(总计23个)

 文档更新:
- Swagger API文档版本更新
- OpenAPI规范文档更新
- 手动API文档版本更新
- 添加v1.1.0版本更新日志

 技术改进:
- 完善验证码相关错误处理
- 优化API响应格式一致性
- 增强测试覆盖率

 更新内容:
- package.json: 1.0.0  1.1.0
- Swagger配置: 1.0.0  1.1.0
- OpenAPI文档: 1.0.0  1.1.0
- 应用状态接口: 1.0.0  1.1.0
- API文档: 添加v1.1.0更新日志
Reviewed-on: datawhale/whale-town-end#24
问题修复:
- 用户名冲突:400  409 Conflict
- 邮箱冲突:400  409 Conflict
- 手机号冲突:400  409 Conflict

 保持其他错误返回400:
- 验证码错误:400 Bad Request
- 参数格式错误:400 Bad Request

 符合RESTful API规范:
- 409 Conflict:资源冲突
- 400 Bad Request:请求参数错误

 测试验证:
- 邮箱冲突正确返回409
- 用户名冲突正确返回409
- 验证码错误正确返回400
文档更新内容:
- 更新注册接口响应示例,区分400和409状态码
- 添加资源冲突响应示例(用户名、邮箱、手机号已存在)
- 完善OpenAPI文档,添加详细的响应示例
- 更新错误码表格,明确不同错误的状态码
- 添加HTTP状态码测试场景

 修复说明:
- 409 Conflict:用户名/邮箱/手机号已存在
- 400 Bad Request:验证码错误/参数格式错误
- 符合RESTful API规范

 测试验证:
- 邮箱冲突:HTTP 409
- 用户名冲突:HTTP 409
- 验证码错误:HTTP 400

 前端开发者现在可以:
- 根据HTTP状态码进行精确的错误处理
- 移除临时解决方案,使用标准状态码判断
- 提供更好的用户体验和错误提示
- 新增邮箱冲突检测:发送验证码前检查邮箱是否已被注册
- 优化用户体验:避免向已注册邮箱发送无用验证码
- 改进错误处理:返回409 Conflict状态码和明确错误信息
- 更新API文档:重新整理文档结构,突出前端开发要点
- 完善测试用例:添加邮箱冲突检测相关测试
- 版本升级:1.1.0  1.1.1

核心修改:
- src/core/login_core/login_core.service.ts: 在sendEmailVerification方法中添加邮箱存在性检查
- src/business/auth/controllers/login.controller.ts: 正确处理409冲突状态码
- docs/api/api-documentation.md: 重新整理为精简实用的前端开发文档
- docs/api/openapi.yaml: 更新版本和接口描述
- test-register-fix.ps1: 添加邮箱冲突检测测试用例
Reviewed-on: datawhale/whale-town-end#25
登录验证码发送时错误地使用了密码重置邮件模板,
导致用户收到的邮件内容显示为'密码重置'而不是'登录验证码'。

修改 EmailService.sendVerificationCode 方法,
当 purpose 为 'login_verification' 时使用正确的
getLoginVerificationTemplate 方法而不是 getPasswordResetTemplate。
为修复的登录验证码邮件模板功能添加专门的测试用例:
- 测试登录验证码邮件发送功能
- 验证邮件模板内容包含正确的登录验证码信息
- 确保邮件主题和内容符合预期
- 在API文档重要提醒中添加邮件模板修复说明
- 更新OpenAPI文档版本号至1.1.3
- 增强发送登录验证码接口的描述,明确说明使用专门的登录验证码模板
更新发送登录验证码接口的ApiOperation描述,
明确说明邮件使用专门的登录验证码模板,
内容标识为登录验证而非密码重置。
新增 clearCooldown 方法,用于在用户成功完成操作后
清除验证码冷却时间,提升用户体验:
- 注册成功后清除邮箱验证码冷却时间
- 密码重置成功后清除重置验证码冷却时间
- 验证码登录成功后清除登录验证码冷却时间
在用户成功完成关键操作后自动清除验证码冷却时间:
- 用户注册成功后清除邮箱验证码冷却时间
- 密码重置成功后清除密码重置验证码冷却时间
- 验证码登录成功后清除登录验证码冷却时间

清除失败不影响主流程,只记录警告日志,确保用户体验。
为新增的验证码冷却时间清除功能添加全面的测试用例:

验证服务测试:
- 测试成功清除冷却时间
- 测试清除不存在的冷却时间
- 测试Redis操作错误处理
- 测试不同类型和标识符的冷却时间清除

登录核心服务测试:
- 测试注册成功后自动清除冷却时间
- 测试密码重置成功后自动清除冷却时间
- 测试验证码登录成功后自动清除冷却时间
- 测试冷却时间清除失败的优雅处理
- 移除分散的旧测试脚本(test-api.ps1, test-api.sh, test-register-fix.ps1, test-throttle.ps1)
- 添加统一的综合测试脚本(test-comprehensive.ps1)
- 新脚本支持更多功能:跳过限流测试、自定义服务器地址等
- 提供更完整的API功能测试覆盖
- 更新快速测试部分,使用新的综合测试脚本
- 添加测试脚本的参数说明(跳过限流测试、自定义服务器等)
- 更新测试内容列表,包含新增的功能测试
- 统一测试命令,简化开发者使用流程
Reviewed-on: datawhale/whale-town-end#26
ANGJustinl closed this pull request 2025-12-25 23:38:22 +08:00

Pull request closed

Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ANGJustinl/whale-town-end#1