【问题标题】:Problem with sessions, subdomains and authlogic in RailsRails 中的会话、子域和 authlogic 问题
【发布时间】:2011-01-27 04:03:48
【问题描述】:

我有一个带有 authlogic 身份验证的 Rails 应用程序和一个使用 subdomain-fu 构建的 username.domain.com 结构。

但是当我从 domain.com 转到 username.domain.com 时,我的会话中断了。我已经尝试添加

config.action_controller.session = {:domain => '.localhost:3000'}

到我的 development.rb ,但接缝打破 authlogic 禁用注销/登录。

有什么建议吗?

提前致谢!

【问题讨论】:

    标签: ruby-on-rails session authlogic wildcard-subdomain subdomain-fu


    【解决方案1】:

    您在开发模式下遇到此问题,但在 prod 模式下可能不会遇到此问题。您正在尝试设置顶级 cookie。你的浏览器不会让你这样做。你想做什么

    config.action_controller.session = {:domain => '.localhost:3000'}
    

    说得好

    config.action_controller.session = {:domain => '.com'}
    

    尝试创建自定义本地域,如 localhost.localdomain 或 dummylocal.com 或其他东西,这将使其工作。

    config.action_controller.session = {:domain => 'localhost.localdomain'}
    config.action_controller.session = {:domain => 'dummylocal.com'}
    

    【讨论】:

      【解决方案2】:

      也许这会有所帮助:http://erikonrails.snowedin.net/?p=248

      【讨论】:

        【解决方案3】:

        对于 Rails3,上面的代码将引发 NoMethodError:

        undefined method `session=' for ActionController::Base:Class
        

        因此,对于 Rails3,您不应更改环境配置,而应将 app/config/initializers/session_store.rb 设置为:

        YourAppName::Application.config.session_store :active_record_store,
            {:key => '_your_namespace_session', :domain => '.yourdomain.com'}
        

        【讨论】:

          猜你喜欢
          • 2015-08-12
          • 2011-05-12
          • 1970-01-01
          • 1970-01-01
          • 2013-10-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-03
          相关资源
          最近更新 更多