切换到 HTTPS 页面时保持用户身份验证 - Devise & Heroku

Keeping user authenticated when switching to HTTPS page - Devise & Heroku

我有一个 rails 应用程序托管在 Heroku 上,它使用自定义域并且没有 SSL,但在结帐页面上我想使用已经配置了 SSL 的 Heroku URL。

例如,用户在 http://www.example.com 并且已经登录,然后单击结帐 link 转到 https://example.herokuapp.com/checkout

问题是,一旦用户访问第二个 URL,他们就会被重定向,因为应用认为他们不再登录。在这些页面之间切换时,有没有办法让用户保持登录状态?

您不能对 herokuapp.com 子域执行此操作。
该域由浏览器在其 public 后缀列表中列出:https://devcenter.heroku.com/articles/cookies-and-herokuapp-com

这意味着您不能使用将设置 *.herokuapp.com 的 cookie,更不用说 *.com.
唯一可以做到这一点的方法是始终使用自定义域或 herokuapp.com 子域。

如果您不在自定义域上使用 SSL 的原因是价格,您可能会对 CloudFlare 的 SSL 产品和通过它们对您的应用程序的代理请求感兴趣:https://www.cloudflare.com/ssl