gpt4 book ai didi

cookies - Rails 3,没有带有 :domain => :all 的本地 session cookie

转载 作者:行者123 更新时间:2023-12-05 00:05:46 24 4
gpt4 key购买 nike

我有一个使用子域的 Rails3 应用程序。为了允许登录等在所有子域中工作,我在 config/initializers/session_store.rb 中执行此操作

MyApp::Application.config.session_store :cookie_store, :key => '_myapp_session', :domain => :all

当我将我的应用程序部署到 Heroku 时,这非常有效。我可以跨子域登录并保持登录状态。

但是,在本地开发时,这不起作用。

我的浏览器确实正确设置了 session cookie:
$ curl http://test.lhs.com/users/sign_in
...
Set-Cookie: _myapp_session=BAh...3ed; domain=.lhs.com; path=/; HttpOnly
...

但是,我的浏览器(我尝试过 Safari、FireFox 和 Chrome)没有设置这个 cookie。所以,当我登录时,我得到一个 InvalidAuthenticityToken错误。

我试过删除 :domain => :all部分,它确实正确设置了 session cookie,但仅适用于当前子域。像这样明确设置它 :domain => '.lhs.com'也不设置cookie。

我在这里不知所措。为什么这在 heroku 上的生产中有效,而不是在本地。我什至尝试过不同的服务器(Webrick with rails server 和passenger-standalone)。我还尝试在端口 80 而不是 3000 上本地运行,但这也没有区别。

为什么 session cookie 未在本地设置的任何线索?谢谢!

最佳答案

:domain => :all在 Rails 3.0.3 中设置,除非您在浏览器中指定顶级域,否则似乎不会设置本地 session cookie。这可能是设计好的,尽管我没有看到任何文档。

所以当你访问localhost时你的 session 会失败,但它应该在mylaptop.local中正常设置。 “.local”似乎满足对 TLD 的要求。

关于cookies - Rails 3,没有带有 :domain => :all 的本地 session cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4203502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com