# 邮件登录模块测试检查清单 ## 📋 测试前检查 ### 1. 配置检查 ✅ **当前配置状态:** - ✅ SecretID: `AKIDXw8HBtNfjdJm480xljV4QZUDi05wa0DE` - ✅ SecretKey: `tZyHMDsKadS4ScZhhU3PYUErGUVIqBIB` - ✅ Region: `ap-beijing` - ✅ From-email: `newletter@vionow.com` - ✅ Template-id: `154360`(生产模式) **需要确认:** - [ ] **发信地址是否已验证** - 访问:https://console.cloud.tencent.com/ses/address - 检查 `newletter@vionow.com` 状态应为"已验证" - ⚠️ **重要**:未验证的发信地址无法发送邮件 - [ ] **模板ID是否有效** - 访问:https://console.cloud.tencent.com/ses/template - 检查模板ID `154360` 是否已审核通过 - 确认模板中包含 `{{code}}` 变量 - [ ] **SES服务是否有可用额度** - 访问:https://console.cloud.tencent.com/ses - 检查账户余额或免费额度 --- ### 2. 服务检查 - [ ] **后端服务是否运行** ```bash # 检查服务是否在运行 # 访问:http://localhost:8080 ``` - [ ] **前端服务是否运行** ```bash # 检查前端是否在运行 # 访问:http://localhost:5173 ``` - [ ] **数据库是否正常** - 确认数据库连接正常 - 确认用户表等表结构存在 --- ### 3. 测试邮箱准备 - [ ] **准备测试邮箱地址** - 使用真实的邮箱地址(可以正常接收邮件) - 建议使用常用邮箱:Gmail、QQ邮箱、163邮箱等 - 确保可以访问邮箱查看验证码 --- ## 🚀 测试步骤 ### 步骤1:访问登录页面 1. 打开浏览器访问:`http://localhost:5173/login` - 或访问部署的前端地址 2. 确认页面显示: - ✅ 邮箱输入框 - ✅ 验证码输入框 - ✅ "获取验证码"按钮 - ✅ "登录/注册"按钮 --- ### 步骤2:发送验证码 1. **输入邮箱地址** - 输入一个有效的邮箱地址(例如:`test@example.com`) 2. **点击"获取验证码"按钮** - 观察按钮是否进入60秒倒计时状态 - 观察是否有成功提示 3. **检查结果:** - ✅ **成功**:显示"验证码已发送到您的邮箱" - ❌ **失败**:检查错误信息 4. **查看日志(如有错误)** ```bash # 查看后端日志,查找错误信息 # 可能的问题: # - 发信地址未验证 # - 模板ID无效 # - 权限不足 # - 额度不足 ``` --- ### 步骤3:接收验证码 **当前配置为生产模式(template-id=154360),会实际发送邮件。** 1. **检查邮箱收件箱** - 邮件来自:`newletter@vionow.com` - 邮件主题:根据模板配置 - 邮件内容:包含6位数字验证码 2. **如果未收到邮件:** - 检查垃圾邮件文件夹 - 等待1-2分钟(邮件发送可能有延迟) - 检查邮箱是否正确输入 - 查看后端日志是否有错误 --- ### 步骤4:输入验证码并登录 1. **输入验证码** - 输入邮箱中收到的6位数字验证码 2. **点击"登录/注册"按钮** 3. **检查结果:** - ✅ **成功**: - 跳转到主页或个人中心 - 显示登录成功提示 - 浏览器控制台中保存了token - ❌ **失败**:检查错误信息 - 验证码错误 - 验证码过期(5分钟) - 其他错误 --- ### 步骤5:验证登录状态 1. **检查Token是否保存** - 打开浏览器开发者工具 - 查看 `sessionStorage` 或 `localStorage` - 确认 `token` 和 `user` 信息已保存 2. **检查用户信息** - 查看个人中心或用户信息页面 - 确认邮箱等信息正确显示 3. **测试自动注册功能** - 使用一个新的邮箱地址测试 - 系统应自动创建新用户并登录 --- ## 🔍 常见问题排查 ### 问题1:点击获取验证码后没有反应 **可能原因:** - 前端服务未启动 - 后端服务未启动 - 网络连接问题 **解决方法:** 1. 检查前端控制台错误信息 2. 检查后端服务是否运行 3. 检查API接口地址是否正确 --- ### 问题2:显示"发送失败"或错误信息 **可能原因:** - 发信地址未验证 - 模板ID无效或未审核 - SecretID/SecretKey权限不足 - SES服务额度不足 **解决方法:** 1. 检查SES控制台发信地址状态 2. 检查模板ID是否正确且已审核 3. 检查API密钥权限 4. 检查SES服务额度 **查看后端日志:** ```bash # 查看详细的错误信息 # 常见错误: # - InvalidParameter.EmailAddressNotVerified(发信地址未验证) # - ResourceNotFound.TemplateNotFound(模板不存在) # - InvalidSecretId.InvalidSignature(密钥错误) ``` --- ### 问题3:收不到邮件 **可能原因:** - 邮箱地址输入错误 - 邮件被垃圾邮件过滤器拦截 - 邮件发送延迟 - 发信地址未验证(生产模式) **解决方法:** 1. 检查邮箱地址是否正确 2. 检查垃圾邮件文件夹 3. 等待1-2分钟 4. 确认发信地址已验证 5. 查看后端日志确认是否发送成功 --- ### 问题4:验证码验证失败 **可能原因:** - 验证码输入错误 - 验证码已过期(5分钟) - 验证码已被使用 - 邮箱地址不匹配 **解决方法:** 1. 确认验证码输入正确(6位数字) 2. 确认在5分钟内使用 3. 重新获取验证码 4. 确认邮箱地址与获取验证码时一致 --- ## 🧪 测试用例 ### 测试用例1:正常登录流程 **步骤:** 1. 输入邮箱:`test@example.com` 2. 点击"获取验证码" 3. 等待邮件到达(生产模式) 4. 输入验证码 5. 点击"登录/注册" **预期结果:** - ✅ 验证码发送成功 - ✅ 收到邮件 - ✅ 登录成功 - ✅ 跳转到主页 --- ### 测试用例2:自动注册新用户 **步骤:** 1. 输入一个从未使用过的邮箱:`newuser@example.com` 2. 点击"获取验证码" 3. 收到验证码后输入 4. 点击"登录/注册" **预期结果:** - ✅ 系统自动创建新用户 - ✅ 自动登录 - ✅ 用户信息正确保存 --- ### 测试用例3:验证码过期测试 **步骤:** 1. 获取验证码 2. 等待超过5分钟 3. 输入验证码尝试登录 **预期结果:** - ❌ 提示验证码已过期 - ✅ 需要重新获取验证码 --- ### 测试用例4:发送频率限制 **步骤:** 1. 点击"获取验证码" 2. 在60秒内再次点击"获取验证码" **预期结果:** - ✅ 按钮处于倒计时状态,无法点击 - ✅ 或提示"发送过于频繁" --- ### 测试用例5:邮箱格式验证 **步骤:** 1. 输入无效邮箱:`invalid-email` 2. 点击"获取验证码" **预期结果:** - ❌ 提示"请输入正确的邮箱地址" --- ## ✅ 测试完成检查清单 完成测试后,确认以下功能正常: - [ ] ✅ 可以发送验证码 - [ ] ✅ 可以收到邮件(生产模式) - [ ] ✅ 可以输入验证码登录 - [ ] ✅ 新用户可以自动注册 - [ ] ✅ Token正确保存 - [ ] ✅ 用户信息正确显示 - [ ] ✅ 验证码过期机制正常 - [ ] ✅ 发送频率限制正常 - [ ] ✅ 邮箱格式验证正常 --- ## 📝 测试记录模板 ``` 测试时间:____年__月__日 __:__ 测试环境:开发/生产 发信地址状态:已验证/未验证 模板ID状态:已审核/未审核 测试邮箱:_______________ 测试结果: [ ] 发送验证码成功 [ ] 收到邮件 [ ] 登录成功 [ ] 自动注册成功 遇到的问题: _________________________________ 解决方案: _________________________________ ``` --- ## 🚨 重要提醒 ### 生产模式注意事项 **当前配置为生产模式(template-id=154360),会实际发送邮件。** ⚠️ **必须确保:** 1. 发信地址 `newletter@vionow.com` 已验证 2. 模板ID `154360` 已审核通过 3. SES服务有可用额度 4. API密钥有SES服务权限 ### 如果发信地址未验证 **临时解决方案(仅用于测试):** 可以将 `template-id` 临时改为 `0`,进入开发模式: ```properties tencent.ses.template-id=0 ``` 开发模式下不会实际发送邮件,验证码会在日志中显示。 --- ## 🔗 相关资源 - **腾讯云SES控制台**: https://console.cloud.tencent.com/ses - **发信地址管理**: https://console.cloud.tencent.com/ses/address - **邮件模板管理**: https://console.cloud.tencent.com/ses/template - **邮箱验证登录指南**: `EMAIL_VERIFICATION_LOGIN_GUIDE.md` - **邮件登录配置清单**: `EMAIL_LOGIN_CONFIGURATION_CHECKLIST.md` --- ## ✅ 测试准备完成 **配置状态:** - ✅ 所有必需配置已设置 - ⚠️ 需要确认发信地址已验证 - ⚠️ 需要确认模板ID已审核 **可以开始测试!**