簡體   English   中英

在沒有自定義域的情況下,子域會話在Heroku上的Rails 2.3和Rails 3中不起作用?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM