在多个域之间共享用户会话

时间:2011-11-24 21:57:21

标签: ruby-on-rails ruby-on-rails-3 session ruby-on-rails-3.1 devise

我正在构建一个可通过不同域访问的应用。根据访问的域名,它的行为会略有不同。

我希望能够做的是,一旦有人从一个域登录,他们不应该在来自其他域时进行注册,并且应该自动登录。

我的猜测是,这需要在域之间共享cookie数据。有人可以指出我应该如何实现这个目标吗?

我知道还有其他网站网络可以执行此操作,例如http://graphicriver.net/http://audiojungle.net/,您只需登录一个网站即可使用其所有网站。

1 个答案:

答案 0 :(得分:4)

配置/初始化/ session_store.rb

ProjectName::Application.config.session_store :cookie_store, key: '_ProjectName_session', 
                                                             domain: :all, 
                                                             tld_length: 2

然后你还需要清除cookie。

UPD:我之前的回答是错的,我忘了添加tld_length选项,因此在顶级域名长度超过1的域之间不会共享会话(myapp.local的tld_length为2) 。现在答案是正确的。