Lan*_*ard 4 subdomain session ruby-on-rails heroku
所以我有两个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')
Run Code Online (Sandbox Code Playgroud)
甚至组合这个:
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
Run Code Online (Sandbox Code Playgroud)
......对于开发站点,这两个:
ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS.update(:session_domain => '.heroku.com')
# or
ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS.update(:session_domain => '.development-app.heroku.com')
Run Code Online (Sandbox Code Playgroud)
这些都不会保持子域之间的会话.如果我有自定义域名并且刚刚运行Heroku子域名,我该如何使用?
谢谢!
在config/initializers/session_store.rb中,告诉rails在所有域中设置cookie:
Rails.application.config.session_store :cookie_store, :key => '_yourapp_session', :domain=>:all
Run Code Online (Sandbox Code Playgroud)
与这个问题相同
如果您希望在"development-app.heroku.com"和"production-app.com"之间保持会话,除非这些代码库是相同的,否则无法完成.如果它们是相同的代码库,则使用应用程序控制器上的before_filter重定向到production-app.com
| 归档时间: |
|
| 查看次数: |
2094 次 |
| 最近记录: |