我在 Rails 应用程序中使用 Devise 和 Rack::SSLEnforcer。当用户收到确认电子邮件时,它看起来像:
http://mysite.com:443/users/confirmation?confirmation_token=123456789xxx http://mysite.com:443/users/confirmation?confirmation_token=123456789xxx
该链接是由 Devise 的confirmation_url 方法自动生成的。
此链接不应附加端口 443。理论上,我不需要链接到 https 地址,但如果是也没关系。至少前面应该是 https,而不是末尾是 443 端口。
有任何想法吗?
我通过安装设计视图并自定义生成的链接解决了这个问题。您可以使用以下命令安装 Devise 视图:
rails generate devise:views
请务必阅读 Devise 文档,因为执行此操作时您可能需要自定义一些其他内容(取决于您的具体情况)。
完成后,您现在可以编辑该文件
app/views/devise/mailer/confirmation_instructions.html.erb
要使链接始终生成为 SSL,只需自定义link_to
call:
<%= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token, :protocol => "https") %>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)