Rails - 帐户激活不会重定向到https

时间:2015-10-20 22:15:57

标签: ruby-on-rails ruby-on-rails-4 railstutorial.org

我的邮件程序发送了一个帐户激活链接,如下所示:

edit_account_activation_url(@ user.activation_token,email:@ user.email)

制造

http://MYAPPHOST/account_activation/7Apxg0G5t2V5tHrO2tatPQ/edit?email=sdf%40oiu.com

当我将其更改为https时可以正常工作,但它不会被重定向。我已经有config.force_ssl = true所以我不确定如何启用此重定向。任何帮助表示赞赏。

每当我转到http://MYAPP时,我都会被重定向到about:blank

1 个答案:

答案 0 :(得分:2)

我假设这是在您的生产环境中?您使用的是哪个托管服务提供商和/或服务器(Heroku,AWS和Apache,NGINX等)。

检查您的网络服务器的SSL设置,尤其是X-Forwarded-Proto标头。当HTTPS请求到达Apache / NGINX时,它们将终止SSL连接并向Unicorn / Puma / Thin / Webrick发送HTTP请求。除非您设置protocol=HTTP标头,否则您的Rails服务器将看到X-Forwarded-Proto。这将导致x_y_z_url帮助者返回http://...而不是https://...

例如,在NGINX中:

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;