Совместное использование cookie субдомена в Rails 3 не работает (на Heroku)? - PullRequest
7 голосов
/ 12 апреля 2011

Я пытаюсь, чтобы куки на моем сайте dapshare.com работали как для корневого адреса, так и для субдомена 'www'.

Множество других ответов от stackoverflow (и замечательные Railscasts vid на эту тему) предложили добавить эту строку в session_store.rb:

Dapshare::Application.config.session_store :cookie_store, :key => '_dapshare_session', :domain => :all

Похоже, что это не имеет значения: если я войду на dapshare.com, я все равно не войду на www.dapshare.ком.

Я что-то здесь не так делаю?Я использую следующий код для хранения информации в куки:

cookies.permanent.signed[:thing_to_store] = store_information

Спасибо за любую помощь!

Ответы [ 3 ]

12 голосов
/ 13 апреля 2011

Краткий ответ: использование cookie [: new_cookie] = 'не похоже на захват домена из настроек конфигурации session_store.

Я добавил домен в новый файл cookie, и теперь он работает:

cookies.permanent.signed[:new_cookie] = {:value => new_value, :domain => ".dapshare.com"}

Для всех, кто читает, вам также нужно указать домен при удалении куки

cookies.delete :new_cookie, :domain => ".dapshare.com"

(Спасибо за помощь в диагностике Эндрю Маршалла.)

5 голосов
/ 12 августа 2012

Вы можете просто указать свои куки, используя домен =>: все вместо домена => «.dapshare.com» в Rails 3.1 +:

cookies.permanent.signed[:new_cookie] = {:value => new_value, :domain => :all}

Это более гибкое, чем прямое указание строкового домена. Теперь ваше приложение не будет работать в другом производственном домене.

2 голосов
/ 12 апреля 2011

Я столкнулся с этой проблемой при прохождении: кажется, все не работает должным образом.Если вы хотите использовать только для поддоменов, попробуйте следующее:

Dapshare::Application.config.session_store :cookie_store, :key => '_dapshare_session', :domain => '.dapshare.com'
...