我在Rails应用程序中使用Devise和Rack :: SSLEnforcer。当用户收到确认电子邮件时,它看起来像是:
http://mysite.com:443/users/confirmation?confirmation_token=123456789xxx
该链接由Devise的confirmation_url方法自动生成。
此链接不应附加端口443。从理论上讲,我不需要链接到https地址,但如果是的话就没问题了。至少应该是前面的https,而不是最后的443端口。
有什么想法吗?
答案 0 :(得分:6)
我通过安装Devise视图并自定义生成的链接解决了这个问题。您可以使用以下命令安装Devise视图:
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") %>