Правильный способ совместного использования сеансов входа в поддомены в Rails 3?

Вся информация, которую я нашел в Интернете об этом, говорит, что нужно использовать что-то вроде

Login::Application.config.session_store :cookie_store, :key => '_login_session', :domain => '.domain.com'

И использовать один и тот же ключ для всех поддомены, которыми я хочу поделиться в этом сеансе. Когда я это делаю, аутентификация между поддоменами не проходит. Фактически, когда я посещаю любой из предположительно разделяемых сеансов, начальный сеанс перезаписывается

, т.е. на login.domain.com я запускаю аутентификацию, которая возвращает имя пользователя и сеанс user_id. Затем я перехожу на sub.domain.com, который должен возвращать ту же информацию, что и login.domain.com, но не возвращает. После этого я возвращаюсь на login.domain.com, и там я тоже больше не аутентифицируюсь.

На sub.domain.com файл session_store.rb выглядит так:

Something::Application.config.session_store :cookie_store, :key => '_login_session', :domain => '.domain.com'

Я также использовал: all для значения: domain с тем же результатом. И если я удалю параметр: domain из приведенного выше, тогда начальный сеанс не будет перезаписан, но он также не станет общим.

Когда я смотрю на файлы cookie в Редакторе файлов cookie для Firefox, оба поддомена используют одинаковые имя файла cookie, но аутентификация не передается. Это довольно простая таблица Users, и я использую OpenID и OAuth для аутентификации с помощью Omniauth

7
задан aperture 25 February 2011 в 22:17
поделиться