我在 Rails 应用程序中使用 Devise 和 Rack::SSLEnforcer。当用户收到他们的确认电子邮件时,它看起来像:
http://mysite.com:443/users/confirmation?confirmation_token=123456789xxx
该链接由 Devise 的 confirmation_url 方法自动生成。
此链接不应附加端口 443。理论上,我不需要指向 https 地址的链接,但如果是的话也没关系。最起码前面应该是https,后面不是443端口。
有什么想法吗?
最佳答案
我通过安装 Devise View 和自定义生成的链接解决了这个问题。您可以使用此命令安装 Devise View :
rails generate devise:views
请务必阅读 Devise 文档,因为您在执行此操作时可能需要自定义一些其他内容(取决于您的特定情况)。
完成后,您现在可以在以下位置编辑文件
app/views/devise/mailer/confirmation_instructions.html.erb
要使链接始终生成为 SSL,只需自定义 link_to
调用:
<%= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token, :protocol => "https") %>
关于ruby-on-rails-3 - 使用 Rack::SSLEnforcer 时从 Devise 确认链接中删除 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9038632/