我有一个带有authlogic身份验证的rails应用程序和一个用subdomain-fu构建的username.domain.com结构。
但是从domain.com转到username.domain.com时我的会话中断了。我试图添加
config.action_controller.session = {:domain => '.localhost:3000'}
到我的development.rb,但接缝打破authlogic禁用注销/登录。
有关该怎么做的任何建议?
提前致谢!
答案 0 :(得分: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'}
答案 1 :(得分:1)
对于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'}
答案 2 :(得分:0)
也许这可以提供帮助:http://erikonrails.snowedin.net/?p=248?