[英]Subdomain Session Not Working in Rails 2.3 and Rails 3 on Heroku with/without a Custom Domain?
所以我有兩個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')
這些都不會保持子域之間的會話。 如果我有自定義域名並且剛剛運行Heroku子域名,我該如何使用?
謝謝!
在config / initializers / session_store.rb中,告訴rails在所有域中設置cookie:
Rails.application.config.session_store :cookie_store, :key => '_yourapp_session', :domain=>:all
與這個問題相同
如果您希望在“development-app.heroku.com”和“production-app.com”之間保持會話,除非這些代碼庫是相同的,否則無法完成。 如果它們是相同的代碼庫,則使用應用程序控制器上的before_filter重定向到production-app.com
在development-app.heroku.com上,我也有這些自定義子域,但由於我沒有自定義域,我只使用通配符插件 。
這個插件是否仍可用於使用自定義子域,如api.mydevdomain.herokuapp.com
?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.