Commit Graph

225 Commits

Author SHA1 Message Date
moyin
b99b77e08b fix:修复LoginCoreService依赖注入问题,支持双模式用户服务
- 添加@Inject('UsersService')装饰器到LoginCoreService构造函数
- 支持根据配置动态切换UsersService和UsersMemoryService
- 确保开发测试模式和生产环境的无缝切换
- 修复之前服务启动时的依赖注入错误
2025-12-18 15:06:57 +08:00
7afd9a52fa Merge pull request 'docs:重构README和贡献者文档,完善项目架构说明和测试指南' (#14) from docs/update-readme-and-contributors into main
Reviewed-on: #14
2025-12-18 15:04:21 +08:00
moyin
7924cfb201 docs:重构README和贡献者文档,完善项目架构说明和测试指南
- 重构README结构,按新开发者学习流程组织内容
- 更新项目架构图和技术栈说明,基于实际代码结构
- 创建CONTRIBUTORS.md,记录所有贡献者信息和统计
- 添加TESTING.md测试指南,支持无依赖快速测试
- 创建docs/ARCHITECTURE.md详细架构设计文档
- 优化.env.example配置,支持测试和生产环境切换
- 添加跨平台测试脚本(test-api.ps1/test-api.sh)
- 删除冗余测试文件,统一测试入口
- 更新所有链接为正确的Gitea仓库地址
- 添加MIT开源协议文件
2025-12-18 15:03:09 +08:00
d322db242d Merge pull request '[REVIEW REQUIRED]feat(sql, auth, email, dto):重构邮箱验证流程,引入基于内存的用户服务,并改进 API 响应处理' (#12) from ANGJustinl/whale-town-end:main into main
Reviewed-on: #12
2025-12-18 14:21:24 +08:00
moyin
d4a7b36129 Merge branch 'main' of https://gitea.xinghangee.icu/datawhale/whale-town-end into ANGJustinl-main 2025-12-18 14:12:45 +08:00
243ca05028 Merge pull request 'fix: 修复测试用例中的问题' (#13) from fix/test-issues into main
Reviewed-on: #13
2025-12-18 13:36:13 +08:00
moyin
3cfebbc4c4 fix: 修复测试用例中的问题
- 修复邮件服务测试中未使用的变量警告
- 修复验证服务测试中的TTL和返回值期望问题
- 确保所有113个测试用例通过

详细修改:
- email.service.spec.ts: 移除4个未使用的testService变量
- verification.service.spec.ts:
  * 添加TTL mock值避免异常分支
  * 更新getCodeStats期望值包含code和createdAt字段
  * 修正TTL期望值从-1改为-2(Redis标准)

测试结果: 6个测试套件,113个测试用例全部通过
2025-12-18 13:33:40 +08:00
angjustinl
6dece752ef test(email, verification, login): 更新测试中的断言内容, 修复测试error.
- Replace boolean assertions with structured result object checks in email service tests
- Update email service tests to verify success flag and isTestMode property
- Add error message assertions for failed email sending scenarios
- Change logger spy from 'log' to 'warn' for test mode email output
- Update test message to clarify emails are not actually sent in test mode
- Add code and createdAt properties to verification code stats mock data
- Fix TTL mock value from -1 to -2 to correctly represent non-existent keys
- Replace Inject decorator with direct UsersService type injection in LoginCoreService
- Ensure verification service tests properly mock TTL values during code verification
- Improve test coverage by validating complete response structures instead of simple booleans
2025-12-18 13:29:55 +08:00
76d794571c Merge pull request 'fix: 修复docker部署问题' (#11) from jianuo/whale-town-end:fix into main
Reviewed-on: #11
Reviewed-by: moyin <2443444649@qq.com>
2025-12-18 11:20:53 +08:00
928c3700aa Merge pull request 'docs: 修复文档错误' (#10) from jianuo/whale-town-end:docs into main
Reviewed-on: #10
2025-12-18 11:19:29 +08:00
angjustinl
26ea5ac815 feat(sql, auth, email, dto):重构邮箱验证流程,引入基于内存的用户服务,并改进 API 响应处理
* 新增完整的 API 状态码文档,并对测试模式进行特殊处理(`206 Partial Content`)
* 重组 DTO 结构,引入 `app.dto.ts` 与 `error_response.dto.ts`,以实现统一、规范的响应格式
* 重构登录相关 DTO,优化命名与结构,提升可维护性
* 实现基于内存的用户服务(`users_memory.service.ts`),用于开发与测试环境
* 更新邮件服务,增强验证码生成逻辑,并支持测试模式自动识别
* 增强登录控制器与服务层的错误处理能力,统一响应行为
* 优化核心登录服务,强化参数校验并集成邮箱验证流程
* 新增 `@types/express` 依赖,提升 TypeScript 类型支持与开发体验
* 改进 `main.ts`,优化应用初始化流程与配置管理
* 在所有服务中统一错误处理机制,采用标准化的错误响应格式
* 实现测试模式(`206`)与生产环境邮件发送(`200`)之间的无缝切换
2025-12-18 00:17:43 +08:00
jianuo
5161d614d0 fix: 修复docker部署问题 2025-12-18 00:07:36 +08:00
jianuo
136ba4286c docs: 修复文档错误 2025-12-17 23:19:01 +08:00
jianuo
f7ff0c25f9 docs: 修复文档错误 2025-12-17 23:16:21 +08:00
jianuo
11387f7046 修复文档错误 2025-12-17 22:54:51 +08:00
2a3698b26a Merge pull request 'fix: 修复验证码验证时TTL重置导致过期的关键问题' (#7) from fix/verification-code-ttl-reset into main
Reviewed-on: #7
2025-12-17 21:24:24 +08:00
moyin
c8e60c6059 test:添加验证码问题调试脚本
- 创建PowerShell调试脚本用于本地测试
- 包含完整的验证码测试流程
- 支持错误验证和正确验证的对比测试
- 自动显示TTL和尝试次数变化
- 便于快速定位验证码相关问题
2025-12-17 21:23:27 +08:00
moyin
34a9e727b4 feat:添加验证码调试功能
- 在验证码服务中添加debugCodeInfo方法
- 在业务层添加debugVerificationCode调试接口
- 新增/auth/debug-verification-code调试端点
- 支持查看验证码详细状态信息(TTL、尝试次数等)
- 便于开发和生产环境问题排查
2025-12-17 21:23:22 +08:00
moyin
de3b108503 fix:修复验证码验证时TTL被重置的问题
- 修复验证失败时TTL被重置为5分钟的bug
- 保持原有的过期时间,不重置验证码有效期
- 增加详细的TTL变化日志记录
- 改进错误处理和边界情况处理
- 解决用户验证一次错误后验证码立即过期的问题
2025-12-17 21:23:16 +08:00
81dfbd0643 Merge pull request 'feature/email-verification-system' (#6) from feature/email-verification-system into main
Reviewed-on: #6
2025-12-17 20:27:20 +08:00
moyin
66f268cf17 chore:移除重复的测试脚本文件
- 删除重复的注册验证测试脚本
- 保持测试文件的整洁性
2025-12-17 20:23:51 +08:00
moyin
2e954a6de7 config:更新环境配置和忽略文件
- 在生产环境配置示例中添加邮件服务配置
- 在生产环境配置示例中添加Redis配置
- 更新.gitignore忽略Redis数据文件和日志文件
2025-12-17 20:23:28 +08:00
moyin
6254581101 config:更新项目配置支持新依赖
- 添加邮件服务相关依赖 (nodemailer)
- 添加Redis客户端依赖 (ioredis)
- 更新TypeScript配置
- 更新pnpm工作空间配置
2025-12-17 20:23:13 +08:00
moyin
e373ff8c53 config:更新应用模块集成新服务
- 在主应用模块中导入Redis模块
- 集成邮件服务和验证码服务模块
- 更新模块依赖关系配置
2025-12-17 20:22:54 +08:00
moyin
b433835fc9 service:更新登录核心服务集成邮箱验证
- 在登录核心模块中集成邮件和验证码服务
- 更新密码重置流程使用验证码服务
- 添加邮箱验证相关的核心方法
- 更新相关的单元测试和依赖注入
2025-12-17 20:22:38 +08:00
moyin
c2ddb67b3e service:更新登录业务服务支持邮箱验证
- 添加发送邮箱验证码服务方法
- 添加验证邮箱验证码服务方法
- 添加重新发送邮箱验证码服务方法
- 集成验证码服务和邮件服务
- 更新相关的单元测试
2025-12-17 20:22:10 +08:00
moyin
8436fb10b8 db:更新用户表结构支持邮箱验证
- 在用户实体中添加 email_verified 字段
- 更新用户DTO支持邮箱验证状态
- 修改用户服务支持邮箱验证状态更新
- 添加按邮箱查找用户的方法
- 更新相关的单元测试
2025-12-17 20:21:53 +08:00
moyin
eb7a022f5b feat:添加验证码服务
- 实现验证码生成、验证和管理功能
- 支持多种验证码类型(邮箱验证、密码重置、短信验证)
- 集成Redis缓存存储验证码
- 实现防刷机制:发送频率限制和每小时限制
- 支持验证码过期管理和尝试次数限制
- 包含完整的单元测试
2025-12-17 20:21:30 +08:00
moyin
3e5c171ff6 feat:添加邮件服务
- 实现完整的邮件发送功能
- 支持验证码邮件发送
- 支持欢迎邮件发送
- 集成SMTP配置和Nodemailer
- 添加邮件模板和HTML格式支持
- 包含完整的单元测试
2025-12-17 20:21:11 +08:00
moyin
de30649826 feat:添加Redis缓存服务
- 实现Redis服务接口和抽象层
- 提供真实Redis服务实现 (RealRedisService)
- 提供文件模拟Redis服务 (FileRedisService) 用于开发测试
- 支持基本的Redis操作:get、set、del、exists、ttl
- 添加Redis模块配置和依赖注入
2025-12-17 20:20:18 +08:00
moyin
e58cc57769 docs:重新组织系统文档结构
- 将日志系统文档移动到 docs/systems/logger/detailed-specification.md
- 将邮箱验证部署指南移动到 docs/systems/email-verification/deployment-guide.md
- 创建邮箱验证系统完整文档 docs/systems/email-verification/README.md
- 按功能模块组织文档,提高可维护性
2025-12-17 20:20:00 +08:00
moyin
0065357fa5 test:添加带验证码的注册流程测试脚本
- 创建完整的注册流程测试脚本
- 包含发送验证码和注册两个步骤
- 支持交互式输入验证码进行测试
2025-12-17 20:11:34 +08:00
moyin
5b07535002 api:更新注册接口支持邮箱验证码
- 注册接口传递邮箱验证码参数到服务层
- 更新 API 文档描述,说明验证码使用流程
- 添加发送邮箱验证码接口
- 添加验证邮箱验证码接口
- 添加重新发送邮箱验证码接口
2025-12-17 20:07:11 +08:00
moyin
94ba3077aa dto:为注册接口添加邮箱验证码参数
- 在 RegisterDto 中添加 email_verification_code 可选字段
- 更新 RegisterRequest 接口定义
- 在注册核心服务中添加验证码验证逻辑
- 提供邮箱时必须提供有效的验证码进行验证
2025-12-17 20:06:56 +08:00
74ca9f90df Merge pull request 'feat: 添加生产环境部署配置' (#5) from feature/deployment-config into main
Reviewed-on: #5
2025-12-17 15:38:46 +08:00
moyin
a907e64f40 feat: 添加生产环境部署配置
- 添加 Dockerfile 和 docker-compose.yml 支持容器化部署
- 添加 PM2 配置文件 ecosystem.config.js
- 添加部署脚本模板 deploy.sh.example
- 添加 Gitea webhook 处理器模板 webhook-handler.js.example
- 添加生产环境配置模板 .env.production.example
- 添加详细的部署指南 DEPLOYMENT.md
- 更新 .gitignore 排除敏感配置文件
2025-12-17 15:37:40 +08:00
178130bb27 Merge pull request 'feat:实现完整的API文档系统' (#4) from feature/api-documentation-system into main
Reviewed-on: #4
2025-12-17 15:23:20 +08:00
moyin
a1669626fd fix:修复日志系统响应序列化器错误
- 修复res.getHeader is not a function错误
- 添加响应对象方法存在性检查
- 确保日志系统在各种响应类型下正常工作
2025-12-17 15:17:11 +08:00
moyin
08bf2bbaf3 docs:更新项目文档结构和说明
- 重新组织docs目录结构
- 在README中添加API文档系统介绍
- 提供Swagger UI快速访问指南
- 完善文档导航和使用说明
2025-12-17 15:16:54 +08:00
moyin
1e47c4db60 docs:创建完整的API接口文档
- 创建详细的API接口说明文档
- 提供OpenAPI 3.0规范文件
- 创建Postman测试集合
- 添加API文档使用指南
2025-12-17 15:16:27 +08:00
moyin
d28100e103 api:为登录控制器添加完整的Swagger文档
- 添加ApiTags、ApiOperation等装饰器
- 配置详细的请求和响应文档
- 提供HTTP状态码和错误处理说明
2025-12-17 15:16:10 +08:00
moyin
0692aaadcc dto:创建API响应数据传输对象
- 创建LoginResponseDto、RegisterResponseDto等响应DTO
- 定义标准化的API响应格式
- 添加完整的Swagger类型定义
2025-12-17 15:15:53 +08:00
moyin
76f5fa99a6 dto:为登录相关DTO添加Swagger文档注解
- 为LoginDto、RegisterDto等添加ApiProperty装饰器
- 完善字段描述、示例值和验证规则说明
- 提供详细的API参数文档
2025-12-17 15:15:35 +08:00
moyin
ac92dcc67b config:配置Swagger API文档系统
- 在main.ts中集成Swagger UI
- 配置API文档基本信息和JWT认证
- 设置文档访问路径为/api-docs
2025-12-17 15:15:14 +08:00
moyin
fb8d166f00 chore:添加Swagger文档生成依赖
- 安装@nestjs/swagger用于API文档生成
- 安装swagger-ui-express用于文档界面展示
2025-12-17 15:14:58 +08:00
54402e68e1 Merge pull request 'docs:修改时间问题' (#3) from docs into main
Reviewed-on: #3
2025-12-17 14:49:22 +08:00
moyin
a6be1a4d9b docs:修改时间问题 2025-12-17 14:49:00 +08:00
bae62cca52 Merge pull request 'feat: 实现完整的用户认证系统' (#2) from login into main
Reviewed-on: #2
2025-12-17 14:43:04 +08:00
4c21b812db Merge branch 'main' into login 2025-12-17 14:42:55 +08:00
moyin
c14a49a88e chore:更新项目配置
- 更新pnpm工作区配置
- 完善后端开发规范文档
2025-12-17 14:40:00 +08:00