某些浏览器中忽略了通配符子域cookie.Heroku上的Rails 3.2应用程序

JDS*_*han 2 cookies heroku devise ruby-on-rails-3 ruby-on-rails-3.2

我使用Devise在Heroku上有一个rails 3.2应用程序.

昨天部署后开始,session_id退出存储在某些浏览器上.

在调试马拉松之后,我们发现我们的cookie设置如下:

Application.config.session_store :cookie_store, :domain => :all
Run Code Online (Sandbox Code Playgroud)

这是发送带有域的set cookie头.herokuapp.com,允许我们访问我们的开发,登台等.

此代码已运行> 1年.昨天,在部署之后,错误出现了.

修复程序是使用cookie域中的实际子域明确设置域:

Application.config.session_store :cookie_store, :domain => 'example.herokuapp.com'
Run Code Online (Sandbox Code Playgroud)

虽然这"解决"了这个问题,但我还没弄清楚为什么这个cookie被某些浏览器忽略了,而不是其他浏览器.它们都应该允许通配符子域cookie AFAIK.

请帮我理解这个问题.

JDS*_*han 6

2013年5月14日,herokuapp.com被添加到Mozilla Foundation的公共后缀列表中.此列表用于多个浏览器(Firefox,Chrome,Opera),以限制cookie的范围.

资料来源:https://devcenter.heroku.com/articles/cookies-and-herokuapp-com