我使用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以使用适用于所有不同子域的会话?
由于
答案 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