Rails 4跨子域会话

8

我正在尝试以下内容,但没有成功,目的是为了在子域名之间保持会话:

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

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

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

我在Google和SO上找到了所有这些组合。
我看到了一些解释,但它们涉及手动设置cookie。如果可能的话,我想坚持使用配置。
注意:我正在使用Devise。我还重启了服务器并清除了cookies。

第一个应该可以工作,也是我首选的方法。你试过在测试时更改cookie密钥吗?我过去曾将其用作“硬重置”。 - Jaap Haagmans
在测试时更改cookie?使用Chrome Dev工具或Firebug? - orourkedd
我说了cookie密钥,例如将“_myapp_session”更改为“_myapp_tmp”。只是为了绝对确定。 - Jaap Haagmans
1个回答

1
我发现不同的应用程序应该有相同的secret_key_base,位于config/initializers/secret_token.rb中。在我这样做之后,所有我的应用程序都开始使用共享会话。
PS. 当然,它们应该有相同的会话密钥。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接