6

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

我完成了这个主题:在 Rails 中的子域之间共享会话(cookies)?但不幸的是没有成功。我什至尝试了这种漫长的逐步机架中间件方法,但没有成功。

我正在使用 Rails 3.2.13。

任何帮助表示赞赏!:)

4

2 回答 2

16

我需要做的就是在创建 cookie 时指定域,如上文所述。

cookies[:remember_token] = { value: user.remember_token, domain: ".lvh.me" }
于 2013-04-02T19:41:52.910 回答
1

放在domain: allconfig/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,依此类推。

于 2013-04-02T13:29:26.523 回答