ruby-on-rails-3 - 使用 Rack::SSLEnforcer 时从 Devise 确认链接中删除 HTTPS

标签 ruby-on-rails-3 ssl devise

我在 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/

相关文章:

ruby-on-rails - 未初始化的常量 ThinkingSphinx::Deltas::DelayedDelta

ruby-on-rails - 无法弄清楚 Rails_Admin 中的关联

C# SSL 连接被主动拒绝

ruby-on-rails - rails 扩展设备注册表

ruby-on-rails - 添加 devise gem 后登录页面出错

jquery - 从 Controller 获取标记以使用 gmaps4rails 刷新 map

ruby-on-rails-3 - 错误未知数据库 : DATABASE_URL after overriding the DATABASE_URL in the heroku app

linux - 修改 iRedMail SSL 证书

由于握手问题,PerL SSL 连接尝试失败

ruby-on-rails - 错误率: Are devise controllers generated automatically or should we write on our own?