如何使用Rails 2.3.8在子域之间共享会话

我发现了很多帖子描述了如何做到这一点。它们看起来像把它放在适当的环境配置文件中:
config.action_controller.session[:domain] = '.localhost'
但是,如果我这样做,那么尝试登录(我正在使用设计)失败:
ActionController::InvalidAuthenticityToken
我看到其他人发布了相同的问题(提供设置会话[:域名]的建议的各个博客的评论部分),但我没有找到任何人回答了为什么会发生这种情况以及如何解决的问题它。 有任何想法吗?     
已邀请:
我不确定这是否与您的问题有关,但您是否尝试将会话域设置为'.localhost'?这不会有效,因为它实际上是您尝试为其设置Cookie的顶级域名。 见http://www.ruby-forum.com/topic/181650#794923     
我在config / initializers / set_session_domain.rb中有这个片段:
module ActionControllerExtensions
  def self.included(base)
    base::Dispatcher.send :include, DispatcherExtensions
  end

  module DispatcherExtensions
    def self.included(base)
      base.send :before_dispatch, :set_session_domain
    end

    def set_session_domain
      domain = @env['HTTP_HOST'].gsub(/:d+$/, '').gsub(/^[^.]*/, '')
      @env['rack.session.options'].update :domain => domain
    end
  end
end

ActionController.send :include, ActionControllerExtensions
一切都很好。     

要回复问题请先登录注册