Ory Kratos v1.1.0验证邮件缺失验证码与链接问题求助
Ory Kratos v1.1.0验证邮件缺失验证码与链接的解决方法
问题场景
已在Google Cloud Run上成功部署Ory Kratos v1.1.0,执行验证流程时邮件可正常发送,但邮件内容仅显示:
Hi, please verify your account by entering the following code: or clicking the following link:
验证码与链接完全缺失。
核心原因
- 未配置
SERVE_PUBLIC_BASE_URL:Kratos依赖该参数生成验证链接,同时该配置缺失会导致邮件模板中的{{ .Code }}和{{ .Link }}变量无法被正确渲染填充。 - 验证流程的公共URL基础缺失,无法生成有效验证链接并注入邮件模板。
解决步骤
1. 配置SERVE_PUBLIC_BASE_URL环境变量
在Google Cloud Run的Kratos服务配置中,添加环境变量SERVE_PUBLIC_BASE_URL,值为你的Kratos公共服务域名(示例:https://your-kratos-service.run.app)。该URL是Kratos对外暴露的公共端点,用于生成所有流程的跳转链接。
2. 完善验证流程UI URL配置
通过环境变量SELFSERVICE_FLOWS_VERIFICATION_UI_URL配置前端验证页面的URL(示例:https://your-frontend.com/verify),确保验证完成后用户能正确跳转到前端页面。
3. 重启服务
保存环境变量配置后,重启Google Cloud Run上的Kratos服务,使新配置生效。
4. 验证修复效果
触发一次账号验证流程,检查邮件内容是否已正确显示验证码和链接。若问题仍存在,查看Kratos的debug日志(配置已开启log.level: debug),排查是否有模板渲染或链接生成相关的错误信息。
额外检查点
- 确认
COURIER_SMTP_CONNECTION_URI环境变量已正确配置(用户配置中该字段为注释状态,需通过环境变量设置SMTP连接信息,不过邮件能正常发送说明该部分已配置)。 - 检查
identity.schema.json是否包含email字段,确保Kratos能正确获取用户邮箱并触发验证流程。
内容的提问来源于stack exchange,提问作者TheHiggsBroson
相关产品推荐
相关产品推荐

