Сессия поддоменов не работает в Rails 2.3 и Rails 3 на Heroku с / без собственного домена? - PullRequest
4 голосов
/ 17 марта 2011

Итак, у меня есть два приложения heroku:

На production-app.com у меня есть несколько поддоменов, использующих аддон пользовательских доменов Heroku с Zerigo (неаддон домена подстановки):

На development-app.heroku.com у меня также есть эти настраиваемые поддомены, но поскольку у меня нет настраиваемого домена, я просто использую подстановочный знак .

В моемroutes.rb, используя Subdomain-Fu , у меня есть субдомены, работающие локально и в обоих приложениях Heroku.

Проблема, с которой я сейчас сталкиваюсь, заключается в том, как сохранитьсинхронизация сеанса между всеми поддоменами ?

Я пытался добавить это к production.rb:

ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS.update(:session_domain => '.production-app.com')

И даже к комбинациям этого:

begin
  config.action_controller.session[:domain] = '.production-app.com'
  config.action_controller.session[:session_domain] = '.production-app.com'
rescue
  config.action_controller.session = {:domain => '.production-app.com', :session_domain => ".production-app.com"}
end

... и для сайта разработчика, оба из них:

ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS.update(:session_domain => '.heroku.com')
# or
ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS.update(:session_domain => '.development-app.heroku.com')

Никто из них не ведет сеанс между subdomains.Как заставить это работать, когда у меня есть собственный домен и когда я просто запускаю субдомен Heroku?

Спасибо!

Ответы [ 2 ]

7 голосов
/ 17 марта 2011

В вашем config / initializers / session_store.rb скажите rails, чтобы установить cookie для всех доменов:

Rails.application.config.session_store :cookie_store, :key => '_yourapp_session', :domain=>:all

То же, что и этот SO вопрос

ЕслиВы хотите сохранить сеанс между "development-app.heroku.com" и "production-app.com", который не может быть выполнен, если это не одна и та же кодовая база.Если они имеют одинаковую кодовую базу, используйте перенаправитель before_filter на контроллере приложения для перенаправления на production-app.com

0 голосов
/ 13 июля 2013

На development-app.heroku.com у меня также есть эти пользовательские субдомены, но поскольку у меня нет собственного домена, я просто использую подстановочный знак .

Доступно ли это дополнение для использования пользовательских поддоменов, таких как api.mydevdomain.herokuapp.com?

...