2016-12-24 66 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'