通过子域共享一个cookie

时间:2013-03-29 07:54:12

标签: ruby-on-rails ruby-on-rails-3 cookies ruby-on-rails-3.2 subdomain

我有一个运行良好的博客子域,但是,登录已从所有子域分离,因此,如果用户登录其cookie,则仅在非子域页面上有效。如何设置我的应用程序以使cookie在所有子域和普通页面中都有效?

我完成了这个主题:Share session (cookies) between subdomains in Rails?但遗憾的是没有成功。我甚至尝试了一步一步的机架中间件方法,但没有成功。

我正在使用Rails 3.2.13。

任何帮助表示赞赏! :)

2 个答案:

答案 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,依此类推。