2016-12-24 51 views
1

因为我想开始在我的网站上支持跨子域登录。所以我改变了我的会话存储配置从Rails - 如何跨子域删除重复的Cookie?

MyApp::Application.config.session_store :cookie_store, 
    key: '_my_app_session' 

MyApp::Application.config.session_store :cookie_store, 
    key: '_my_app_session', 
    domain: '.local.host', # I'm using *.local.host for 127.0.0.1 
    tld_length: 2 

之后,采用了2块饼干相同名称的文章,引起用途可能被注销。我正在使用Devise,它只删除_my_app_session下的.local.host。因此,用户保持登录状态。

Name    Value   Domain 
_my_app_session  abc    www.local.host 
_my_app_session  xyz    .local.host 

如何删除这两个cookie?

+0

你可以尝试用'领域:“local.host''? – 31piy

+0

但我希望跨子域共享cookie,而不仅仅是'local.host'。 –

+0

是的,我想子域名在这种情况下也会共享相同的cookie。 – 31piy

回答

0

刚想通了sidekiq/web正在对我们造成这种情况。

我们的应用程序在子域上运行,我们将会话配置为跨所有子域共享,因此为.domain.com创建了Cookie。但每次访问/sidekiq时,都会为sub.domain.com创建新会话。

要在routes.rb中解决这个问题,我不得不这样做:

Sidekiq::Web.set :sessions, { domain: ".domain.com" } 
mount Sidekiq::Web => '/sidekiq'