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