我有一个运行良好的博客子域,但是,登录已从所有子域分离,因此,如果用户登录其cookie,则仅在非子域页面上有效。如何设置我的应用程序以使cookie在所有子域和普通页面中都有效?
我完成了这个主题:Share session (cookies) between subdomains in Rails?但遗憾的是没有成功。我甚至尝试了一步一步的机架中间件方法,但没有成功。
我正在使用Rails 3.2.13。
任何帮助表示赞赏! :)
答案 0 :(得分:16)
我需要做的就是在创建cookie时指定域,如上面所述。
cookies[:remember_token] = { value: user.remember_token, domain: ".lvh.me" }
答案 1 :(得分:1)
将domain: all
放在config / session_store.rb
例如
YourApp::Application.config.session_store :encrypted_cookie_store, key: '_yourapp_session', domain: :all
您还可能需要在config / environments / production.rb
中更改此参数config.action_dispatch.tld_length = 2
如果您的域名为example.com
,那么您的tld_length(顶级域名长度)为1(这是默认值)。 example.com.au
为2,127.0.0.1.xip.io
为5,依此类推。