Devise重置密码链接含www失效,去除www即可正常使用求助
解决Devise重置密码带www链接失效的问题
问题根源
你的配置里default_url_options的host用了Heroku临时域名,而非实际业务域名,同时SMTP设置的domain为带www的域名,导致生成的重置链接域名与正常可用的裸域名不一致,触发token验证失败。
修复步骤
修正
default_url_options的host配置
将host改为不带协议前缀的目标域名,若想默认生成裸域名链接,配置如下:config.action_mailer.default_url_options = { host: 'thesofiaproject.ai', protocol: 'https' }若希望默认生成带www的链接,就将host设为
'www.thesofiaproject.ai',注意host字段仅填域名,不要加https://。统一SMTP的domain配置
SMTP的domain需与实际使用的域名保持一致,若裸域名可用,修改为::domain => 'thesofiaproject.ai',若后续计划统一用www域名,可保留
www.thesofiaproject.ai,但需确保www域名能正确解析,并与裸域名共享token验证逻辑。额外检查项
- 确认裸域名和www域名均已正确解析到Heroku服务器,且Heroku应用设置中已添加这两个域名。
- 检查Rails的session存储配置,确保cookie支持主域名下的子域名共享,比如:
Rails.application.config.session_store :cookie_store, key: '_thesofiaproject_session', domain: '.thesofiaproject.ai'
验证
修改配置后重新部署应用,发送测试重置邮件,点击链接确认是否能正常跳转并通过token验证。
内容的提问来源于stack exchange,提问作者GhostRider
相关产品推荐
相关产品推荐

