moyin
e282c9dd16
service:完善Zulip服务的连接管理和错误处理
...
- 增强WebSocket连接状态监控
- 优化错误处理和重连机制
- 完善服务层的日志记录
- 提升连接稳定性和可靠性
支持远程WebSocket连接的服务层改进
2026-01-05 11:14:22 +08:00
moyin
d8b7143f60
websocket:增强Zulip WebSocket网关的调试和监控功能
...
- 添加详细的连接和断开日志记录
- 增强错误处理和异常捕获机制
- 完善客户端状态管理和会话跟踪
- 优化消息处理的调试输出
提升WebSocket连接问题的诊断能力
2026-01-05 11:14:04 +08:00
moyin
6002f53cbc
config:优化WebSocket远程连接的CORS配置
...
- 明确指定允许的域名列表,包括生产环境域名
- 添加Vite开发服务器端口支持
- 完善CORS方法和头部配置,确保WebSocket握手正常
- 支持xinghangee.icu子域名的通配符匹配
修复远程域名WebSocket连接问题的核心配置
2026-01-05 11:13:43 +08:00
moyin
70c020a97c
refactor:重构安全模块架构,将security模块迁移至core层
...
- 将src/business/security模块迁移至src/core/security_core
- 更新模块导入路径和依赖关系
- 统一安全相关组件的命名规范(content_type.middleware.ts)
- 清理过时的配置文件和文档
- 更新架构文档以反映新的模块结构
此次重构符合业务功能模块化架构设计原则,将技术基础设施
服务统一放置在core层,提高代码组织的清晰度和可维护性。
2026-01-04 19:34:16 +08:00
moyin
2d10131838
refactor:重构Zulip模块按业务功能模块化架构
...
- 将技术实现服务从business层迁移到core层
- 创建src/core/zulip/核心服务模块,包含API客户端、连接池等技术服务
- 保留src/business/zulip/业务逻辑,专注游戏相关的业务规则
- 通过依赖注入实现业务层与核心层的解耦
- 更新模块导入关系,确保架构分层清晰
重构后的架构符合单一职责原则,提高了代码的可维护性和可测试性
2025-12-31 15:44:36 +08:00
angjustinl
3dd5f23d79
fix(zulip): Fix e2e test errors and pdate author attribution across all Zulip integration files
...
- Standardize author attribution across 27 files in the Zulip integration module
- Maintain consistent code documentation and authorship tracking
2025-12-25 23:37:26 +08:00
angjustinl
daaf5c3f22
Merge branch 'main' into zulip_dev
...
* main: (31 commits)
docs:更新README中的测试说明
chore:整理API测试脚本
test:添加验证码冷却时间清除功能测试
feat:集成验证码冷却时间自动清除机制
feat:添加验证码冷却时间清除功能
api:更新登录验证码接口Swagger注解
docs:更新登录验证码邮件模板修复相关文档
test:添加登录验证码邮件发送测试
fix:修复登录验证码邮件模板错误
feat: 邮箱冲突检测优化 v1.1.1
docs: 更新API文档,反映HTTP状态码修复
fix: 修复用户注册冲突错误的HTTP状态码问题
chore: 升级版本到1.1.0
feat(docs): 更新OpenAPI文档,添加验证码登录和完整接口定义
fix(docs): 修正API文档中的错误码和验证码说明
docs: 完善API文档,添加验证码登录功能说明
fix:修复注册逻辑和HTTP状态码问题
fix:修复API状态码和限流配置问题
chore: 清理旧文件和更新项目配置
refactor: 更新核心服务和应用配置
...
2025-12-25 23:27:24 +08:00
angjustinl
55cfda0532
feat(zulip): 添加全面的 Zulip 集成系统
...
* **新增 Zulip 模块**:包含完整的集成服务,涵盖客户端池(client pool)、会话管理及事件处理。
* **新增 WebSocket 网关**:用于处理 Zulip 的实时事件监听与双向通信。
* **新增安全服务**:支持 API 密钥加密存储及凭据的安全管理。
* **新增配置管理服务**:支持配置热加载(hot-reload),实现动态配置更新。
* **新增错误处理与监控服务**:提升系统的可靠性与可观测性。
* **新增消息过滤服务**:用于内容校验及速率限制(流控)。
* **新增流初始化与会话清理服务**:优化资源管理与回收。
* **完善测试覆盖**:包含单元测试及端到端(e2e)集成测试。
* **完善详细文档**:包括 API 参考手册、配置指南及集成概述。
* **新增地图配置系统**:实现游戏地点与 Zulip Stream(频道)及 Topic(话题)的逻辑映射。
* **新增环境变量配置**:涵盖 Zulip 服务器地址、身份验证及监控相关设置。
* **更新 App 模块**:注册并启用新的 Zulip 集成模块。
* **更新 Redis 接口**:以支持增强型的会话管理功能。
* **实现 WebSocket 协议支持**:确保与 Zulip 之间的实时双向通信。
2025-12-25 22:22:30 +08:00
moyin
0192934c66
test:添加验证码冷却时间清除功能测试
...
为新增的验证码冷却时间清除功能添加全面的测试用例:
验证服务测试:
- 测试成功清除冷却时间
- 测试清除不存在的冷却时间
- 测试Redis操作错误处理
- 测试不同类型和标识符的冷却时间清除
登录核心服务测试:
- 测试注册成功后自动清除冷却时间
- 测试密码重置成功后自动清除冷却时间
- 测试验证码登录成功后自动清除冷却时间
- 测试冷却时间清除失败的优雅处理
2025-12-25 20:49:16 +08:00
moyin
64370c3206
feat:集成验证码冷却时间自动清除机制
...
在用户成功完成关键操作后自动清除验证码冷却时间:
- 用户注册成功后清除邮箱验证码冷却时间
- 密码重置成功后清除密码重置验证码冷却时间
- 验证码登录成功后清除登录验证码冷却时间
清除失败不影响主流程,只记录警告日志,确保用户体验。
2025-12-25 20:48:53 +08:00
moyin
a78df48101
feat:添加验证码冷却时间清除功能
...
新增 clearCooldown 方法,用于在用户成功完成操作后
清除验证码冷却时间,提升用户体验:
- 注册成功后清除邮箱验证码冷却时间
- 密码重置成功后清除重置验证码冷却时间
- 验证码登录成功后清除登录验证码冷却时间
2025-12-25 20:48:15 +08:00
moyin
0005dc773c
api:更新登录验证码接口Swagger注解
...
更新发送登录验证码接口的ApiOperation描述,
明确说明邮件使用专门的登录验证码模板,
内容标识为登录验证而非密码重置。
2025-12-25 20:41:00 +08:00
moyin
841a58886e
test:添加登录验证码邮件发送测试
...
为修复的登录验证码邮件模板功能添加专门的测试用例:
- 测试登录验证码邮件发送功能
- 验证邮件模板内容包含正确的登录验证码信息
- 确保邮件主题和内容符合预期
2025-12-25 20:40:27 +08:00
moyin
91565f716d
fix:修复登录验证码邮件模板错误
...
登录验证码发送时错误地使用了密码重置邮件模板,
导致用户收到的邮件内容显示为'密码重置'而不是'登录验证码'。
修改 EmailService.sendVerificationCode 方法,
当 purpose 为 'login_verification' 时使用正确的
getLoginVerificationTemplate 方法而不是 getPasswordResetTemplate。
2025-12-25 20:40:08 +08:00
moyin
d683f0d5da
feat: 邮箱冲突检测优化 v1.1.1
...
- 新增邮箱冲突检测:发送验证码前检查邮箱是否已被注册
- 优化用户体验:避免向已注册邮箱发送无用验证码
- 改进错误处理:返回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: 添加邮箱冲突检测测试用例
2025-12-25 18:31:36 +08:00
moyin
8a19bb7daa
fix: 修复用户注册冲突错误的HTTP状态码问题
...
问题修复:
- 用户名冲突: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
2025-12-25 16:26:55 +08:00
moyin
9f606abbb2
chore: 升级版本到1.1.0
...
版本升级: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更新日志
2025-12-25 16:15:52 +08:00
moyin
68debdcb40
docs: 完善API文档,添加验证码登录功能说明
...
- 新增验证码登录接口文档 (POST /auth/verification-code-login)
- 新增发送登录验证码接口文档 (POST /auth/send-login-verification-code)
- 更新接口列表和数量统计 (21个 -> 23个接口)
- 添加验证码登录测试场景和cURL示例
- 完善错误码说明和响应格式
- 确保文档与当前实现完全一致
2025-12-25 15:44:37 +08:00
moyin
9ad98f74d9
resolve: 解决ANGJustinl-main与main分支的合并冲突
...
- 修复文件路径冲突(business/login -> business/auth结构调整)
- 保留ANGJustinl分支的验证码登录功能
- 合并main分支的用户状态管理和项目结构改进
- 修复邮件服务中缺失的login_verification模板问题
- 更新测试用例以包含验证码登录功能
- 统一导入路径以适配新的目录结构
2025-12-25 15:11:14 +08:00
angjustinl
f6fa1ca1e3
test(login): Add verification code login test cases
...
- Add mock implementations for verificationCodeLogin, sendLoginVerificationCode, and debugVerificationCode in LoginService tests
- Add comprehensive test suite for verificationCodeLogin method covering valid login, failed verification, and error scenarios
- Add test suite for sendLoginVerificationCode method including test mode, real email sending, and error handling
- Add test suite for verificationCodeLogin in LoginCoreService covering email and phone verification
- Add test suite for sendLoginVerificationCode in LoginCoreService with email sending and error cases
- Add test suite for debugVerificationCode method for development/testing purposes
- Import VerificationCodeType enum for proper verification code type handling
- Ensure all verification code login flows are properly tested with mocked dependencies
## 测试覆盖
### 核心服务测试 (LoginCoreService)
- ✅ 验证码登录成功(邮箱)
- ✅ 验证码登录成功(手机号)
- ✅ 拒绝邮箱未验证用户
- ✅ 拒绝不存在用户
- ✅ 拒绝错误验证码
- ✅ 拒绝无效标识符格式
- ✅ 成功发送邮箱验证码
- ✅ 测试模式返回验证码
- ✅ 拒绝未验证邮箱
- ✅ 拒绝不存在用户
### 业务服务测试 (LoginService)
- ✅ 验证码登录成功响应
- ✅ 验证码登录失败响应
- ✅ 发送验证码测试模式响应
- ✅ 发送验证码真实模式响应
- ✅ 发送验证码失败响应
### 测试统计
- **总测试用例:** 39个
- **LoginCoreService:** 24个测试用例
- **LoginService:** 15个测试用例
- **测试覆盖率:** 100%
2025-12-24 21:18:52 +08:00
moyin
404ef5d3e0
fix:修复注册逻辑和HTTP状态码问题
...
核心修复:
- 调整注册流程检查顺序,先验证用户存在性再验证验证码
- 修复HTTP状态码问题,业务失败时返回正确的错误状态码
- 优化错误处理逻辑,提供更准确的错误信息
主要变更:
- 登录核心服务:重构注册方法,优化检查顺序避免验证码无效消费
- 用户服务:分离用户创建和重复检查逻辑,提高代码复用性
- 登录控制器:修复HTTP状态码处理,根据业务结果返回正确状态码
- API文档:更新注册接口说明和错误响应示例
- 测试脚本:优化测试逻辑和注释说明
修复效果:
- 用户已存在时立即返回正确错误信息,不消费验证码
- API响应状态码准确反映业务执行结果
- 错误信息更加用户友好和准确
- 验证码使用更加合理和高效
测试验证:
- 所有核心功能测试通过
- 注册逻辑修复验证成功
- HTTP状态码修复验证成功
- 限流功能正常工作
2025-12-24 20:39:23 +08:00
moyin
cb25703892
fix:修复API状态码和限流配置问题
...
- 修复登录控制器HTTP状态码问题,现在根据业务结果返回正确状态码
- 调整注册接口限流配置,从3次/5分钟放宽至10次/5分钟(开发环境)
- 新增清除限流记录的调试接口,便于开发测试
- 更新API文档,反映状态码修复和限流调整
- 添加测试脚本验证修复效果
主要修复:
- 业务失败时返回400/401而非200/201状态码
- 注册、登录、GitHub OAuth等接口现在正确处理错误状态码
- 限流配置更适合开发环境测试需求
2025-12-24 19:41:21 +08:00
moyin
612755de63
chore: 清理旧文件和更新项目配置
...
- 删除旧的DTO文件(已迁移到对应业务模块)
- 删除旧的测试目录结构
- 删除过时的API目录
- 更新package.json配置
- 移除不再使用的文件
2025-12-24 18:05:07 +08:00
moyin
e6d8c28806
refactor: 更新核心服务和应用配置
...
- 更新用户实体和DTO结构
- 重构用户服务逻辑
- 更新登录核心服务
- 调整应用模块配置以适配新的业务模块结构
- 更新应用控制器和服务
2025-12-24 18:04:53 +08:00
moyin
47a738067a
feat: 重构业务模块架构
...
- 新增auth模块处理认证逻辑
- 新增security模块处理安全相关功能
- 新增user-mgmt模块管理用户相关操作
- 新增shared模块存放共享组件
- 重构admin模块,添加DTO和Guards
- 为admin模块添加测试文件结构
2025-12-24 18:04:30 +08:00
angjustinl
9b35a1c500
feat(login): Add verification code login functionality
...
- Add verification code login endpoint to support passwordless authentication via email or phone
- Add send login verification code endpoint to initiate verification code delivery
- Implement verificationCodeLogin method in LoginService to handle verification code authentication
- Implement sendLoginVerificationCode method in LoginService to send verification codes to users
- Add VerificationCodeLoginRequest and related DTOs to support new login flow
- Add VerificationCodeLoginDto and SendLoginVerificationCodeDto for API request validation
- Implement verificationCodeLogin and sendLoginVerificationCode in LoginCoreService
- Add comprehensive Swagger documentation for new endpoints with proper status codes and responses
- Support test mode for verification code delivery with 206 Partial Content status
- Fix UsersService dependency injection in test specifications to use string token
- Enhance authentication options by providing passwordless login alternative to traditional password-based authentication
2025-12-19 23:22:40 +08:00
jianuo
43c9cbc863
test:添加管理后台的单元测试
2025-12-19 23:18:57 +08:00
jianuo
a4a3a60db7
feat:添加日志功能
2025-12-19 20:01:45 +08:00
jianuo
dd4fb6edd3
feat:简单添加管理员后台功能
2025-12-19 19:17:47 +08:00
moyin
b99b77e08b
fix:修复LoginCoreService依赖注入问题,支持双模式用户服务
...
- 添加@Inject('UsersService')装饰器到LoginCoreService构造函数
- 支持根据配置动态切换UsersService和UsersMemoryService
- 确保开发测试模式和生产环境的无缝切换
- 修复之前服务启动时的依赖注入错误
2025-12-18 15:06:57 +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
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
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
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
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
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
moyin
a1669626fd
fix:修复日志系统响应序列化器错误
...
- 修复res.getHeader is not a function错误
- 添加响应对象方法存在性检查
- 确保日志系统在各种响应类型下正常工作
2025-12-17 15:17:11 +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