gpt4 book ai didi

ruby-on-rails - 子域 session 在带/不带自定义域的 Heroku 上的 Rails 2.3 和 Rails 3 中不起作用?

转载 作者:行者123 更新时间:2023-12-04 03:37:34 25 4
gpt4 key购买 nike

所以我有两个heroku应用程序:

  • http://production-app.com (映射自 http://production-app.heroku.com)
  • http://development-app.heroku.com

  • production-app.com ,我有几个使用带有 Zerigo 的 Heroku 自定义域插件(不是通配符域插件)的子域:
  • http://blog.production-app.com
  • http://api.production-app.com

  • development-app.heroku.com ,我也有那些自定义子域,但由于我没有自定义域,我只使用 wildcard addon .

    在我的 routes.rb , 使用 Subdomain-Fu ,我有在本地和 Heroku 应用程序上工作的子域。

    我现在面临的问题是,如何使所有子域之间的 session 保持同步?

    我曾尝试将其添加到 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')

    这些都没有保持子域之间的 session 。当我有一个自定义域并且我只是运行一个 Heroku 子域时,我如何让它工作?

    谢谢!

    最佳答案

    在你的 config/initializers/session_store.rb 中,告诉 rails 在所有域中设置 cookie:

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

    与此相同 SO question

    如果您想在“development-app.heroku.com”和“production-app.com”之间保持 session ,除非它们是相同的代码库,否则无法完成。如果它们是相同的代码库,则在应用程序 Controller 上使用 before_filter 重定向到 production-app.com

    关于ruby-on-rails - 子域 session 在带/不带自定义域的 Heroku 上的 Rails 2.3 和 Rails 3 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5340989/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com