Rails - 如何跨子域删除重复的cookie?

时间:2016-12-24 06:44:04

标签: ruby-on-rails session cookies devise subdomain

因为我想在我的网站上开始支持跨子域登录。所以我从

更改了会话存储配置
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

_my_app_session

之后,使用了2个与下面列表同名的cookie,导致用户可以注销。我使用的是Devise,它只会删除.local.host下的Name Value Domain _my_app_session abc www.local.host _my_app_session xyz .local.host 。所以用户保持登录状态。

master

如何删除这两个Cookie?

1 个答案:

答案 0 :(得分:0)

刚刚发现sidekiq/web对我们造成了这种情况。

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

要在routes.rb中修复此问题,我必须这样做:

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