设计:跨子域共享会话(用户状态)

时间:2016-01-04 18:46:30

标签: ruby-on-rails ruby session devise

我使用Rails 4.2,Ruby 2.2和Devise 3.5设置了我的项目。

我有一个包含多个sudomains的应用,我希望在这些子域之间共享用户的状态(登录/注销)。

我已将会话存储设置为:

Udacity

然而,这似乎没有做任何事情,因为当我在Chrome中检查会话时,它被称为config.session_store :cookie_store, :key => '_app_name_session', :domain => '.name.app', :tld_length => 2 ,这是不正确的会话名称,因此这让我认为rails忽略了这些设置。< / p>

如何设置Devise以使用适用于所有不同子域的会话?

由于

1 个答案:

答案 0 :(得分:3)

我们对子域名使用以下内容:

# config/initializers/session_store.rb
# Be sure to restart your server when you modify this file.

Rails.application.config.session_store :cookie_store, key: '_[[name]]_session', domain: :all # tld_length info here: http://stackoverflow.com/questions/10402777/share-session-cookies-between-subdomains-in-rails/15009883#15009883

您应尝试设置domain: :all,并可能从哈希

中删除tld_length