# 说明文档 ## 项目规划 检查项目中所有邮件验证码的发送逻辑,确保过期时间统一为 15 分钟。 ## 实施方案 1. 搜索整个项目中涉及邮件验证码生成的代码。 2. 搜索项目中涉及验证码存储(如 Redis)的代码。 3. 检查过期时间常量或变量,确认是否为 900 秒或 15 分钟。 4. 修复不符合要求的过期时间。 5. 验证修复结果。 ## 进度记录 - [2026-01-12 19:58] 启动检查任务,搜索邮件逻辑。 - [2026-01-12 20:10] 完成检查。确认以下文件的验证逻辑均为 15 分钟(900秒): - `internal/logic/common/sendEmailCodeLogic.go` (Redis TTL & Template) - `internal/logic/auth/userRegisterLogic.go` (Explicit Check) - `internal/logic/auth/resetPasswordLogic.go` (Explicit Check) - `internal/logic/auth/emailLoginLogic.go` (Explicit Check) - `internal/logic/public/user/bindEmailWithVerificationLogic.go` (Explicit Check) - `internal/logic/public/user/verifyEmailLogic.go` (Explicit Check) - [2026-01-12 20:11] 检查结论:所有邮件验证码发送逻辑均符合 15 分钟过期的要求。 - [2026-01-12 20:35] **统一过期时间配置**: - 修改 `internal/config/config.go` 默认过期时间从 300 秒改为 900 秒 - 修改 `initialize/migrate/database/00002_init_basic_data.up.sql` 初始值从 300 改为 900 - 移除所有逻辑文件中的硬编码 `15` 和 `900`,改为使用 `l.svcCtx.Config.VerifyCode.ExpireTime` - 编译通过,无错误 - [2026-01-13] **设备移出和邀请码优化**: - 修复设备B绑定邮箱后被从设备A移除时未自动退出的问题(通过踢出旧连接和清理缓存实现) - 优化邀请码无效时的错误提示,返回 "无邀请码"