Ari*_*jan 5 cookies heroku ruby-on-rails-3
我有一个使用子域的 Rails3 应用程序。为了允许登录等跨所有子域工作,我在config/initializers/session_store.rb
MyApp::Application.config.session_store :cookie_store, :key => '_myapp_session', :domain => :all
Run Code Online (Sandbox Code Playgroud)
当我将应用程序部署到 Heroku 时,效果非常好。我可以跨子域登录并保持登录状态。
然而,在本地开发时,这不起作用。
我的浏览器确实正确设置了会话 cookie:
$ curl http://test.lhs.com/users/sign_in
...
Set-Cookie: _myapp_session=BAh...3ed; domain=.lhs.com; path=/; HttpOnly
...
Run Code Online (Sandbox Code Playgroud)
但是,我的浏览器(我尝试过 Safari、FireFox 和 Chrome)没有设置此 cookie。因此,当我登录时出现InvalidAuthenticityToken
错误。
我尝试删除该:domain => :all
部分,该部分确实正确设置了会话 cookie,但仅限于当前子域。像这样显式设置它:domain => '.lhs.com'
也不会设置cookie。
我在这里不知所措。为什么这在 Heroku 的生产环境中有效,但在本地却无效。我什至尝试过不同的服务器(Webrick 和rails server
乘客独立)。我也尝试过在端口 80 而不是 3000 上本地运行,但这也没有什么区别。
有什么线索说明为什么会话 cookie 没有在本地设置吗?谢谢!
归档时间: |
|
查看次数: |
6287 次 |
最近记录: |