Rails 3 - «Бесконечный» сеанс при переходе на session_store: domain =>: все - PullRequest
2 голосов
/ 07 марта 2011

У меня сейчас сеансы на основе файлов cookie.Я пытаюсь разрешить доступ ко всем поддоменам в моей системе в одном сеансе, поэтому пользователи будут входить в систему только один раз и получат доступ через мой сайт (section1.mysite.com, section2.mysite.com и т. Д.).

Я обновил свой config / initializers / session_store.rb следующим образом:

 Mysite::Application.config.session_store :cookie_store, :key => '_mysite_session', :domain => :all
 #Mysite::Application.config.session_store :cookie_store, :key => '_mysite_session'

Закомментированная строка показывает, что у меня было раньше.Теперь, это прекрасно работает, если я вышел из системы (не сохранил сеанс cookie), когда я перезапустил сервер.Однако, если у меня был сеанс cookie для первой конфигурации, когда я переключаюсь на: domain => all, я не могу уничтожить этот сеанс.Пользователь неопределенно вошел в систему, потому что сеанс не будет уничтожен.Пользователи не могут выйти из своих сеансов, где вход был в закомментированной конфигурации сеанса, и они пытаются выйти из системы после установки новой конфигурации.

То, что я пробовал: * изменение security_tokenпохоже, не помогло * изменение ключа session_store, похоже, не помогло (я запутался в этом ... я думал, что это должно сработать) * не могу понять, как удалить сессии вручную

Независимо от того, что я делаю, любой, кто вошел в систему до того, как я внес это изменение, не сможет выйти из системы, как только я это сделаю.

Заранее спасибо за вашу помощь!Ben

1 Ответ

1 голос
/ 11 марта 2011

Разве параметр :domain не должен быть множественным, как в :domains?

В вашем случае это будет сделано:

Mysite::Application.config.session_store :cookie_store,
  :key => '_mysite_session', :domains => :all

И для того, чтобы избавиться отВ вашем постоянном сеансе вы можете захотеть очистить файлы cookie вашего браузера.

Обновление:

Чтобы избавиться от файлов cookie пользователей, отредактируйте следующий файл Rails:

app / config / initializers / secret_token.rb:

Mysite::Application.config.secret_token= 'XXXXXXXXX...XXXXXXXXX'
...