Могу ли я разделить файл cookie между несколькими доменами, указывающими на одно и то же приложение Rails? - PullRequest
3 голосов
/ 10 июня 2010

У меня есть x.com, указывающий на apple.y.com , а также отдельно one.y.com и two.y.com . Я хочу, чтобы пользователь, который посещает x.com, one.y.com или two.y.com, использовал одни и те же сеансы. Это возможно? Если нет, то какой самый лучший компромисс?

Ответы [ 2 ]

1 голос
/ 10 июня 2010

one.y.com и two.y.com могут обмениваться файлами cookie, установив для домена cookie значение .y.com. Это позволит использовать файлы cookie во всех поддоменах y.com.

. Однако

x.com не может напрямую использовать cookie-файлы для y.com. Существует решение, использующее перенаправления, но его сложно реализовать - http://www.codeguru.com/csharp/csharp/cs_internet/article.php/c19417/Sharing-Cookies-Across-Domains.htm (примеры на ASP.net, но вы можете применить решение к RoR).

0 голосов
/ 10 июня 2010

Чтобы приложения, использующие один и тот же домен, работали с использованием тех же файлов cookie сеанса, вы должны настроить это в файлах конфигурации среды. Я делаю это для некоторых моих приложений. Это для Rails 2.3.5 приложений, должно быть то же самое для Rails 3, но я не уверен.

Сначала, в config/initializers/session_store.rb, убедитесь, что:

# ActionController::Base.session_store = :active_record_store

закомментировано.

Далее, все ваши приложения должны использовать один и тот же ключ и секрет в одном и том же файле и установить:

ActionController::Base.session = {
  :key         => '_myapp_session',
  :secret      => 'some really long string of hex'
}

Наконец, настройте файлы среды для использования того же домена:

config/environments/development.rb

config.action_controller.session = { 
  :domain => ".rails.local" 
}

config/environments/production.rb

config.action_controller.session = { 
  :domain => ".myapp.com" 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...