Ruby on rails 在应用程序之间共享rails会话

Ruby on rails 在应用程序之间共享rails会话,ruby-on-rails,cookies,Ruby On Rails,Cookies,我有两个应用程序,希望他们共享他们的会话。至少到目前为止,这是微不足道的。现在我遇到了一些问题 我在environment.rb中设置了相同的会话密钥和密码,两个应用程序没有共享相同的会话 已验证development.rb是否有内容。。。没什么 试图清理饼干等,什么都没有 然后我试图改变秘密,幸运的是,我试图改变一些简短的(我的秘密),然后一些尴尬的事情发生了。运行应用程序1正常,但运行应用程序2引发: c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3

我有两个应用程序,希望他们共享他们的会话。至少到目前为止,这是微不足道的。现在我遇到了一些问题

我在environment.rb中设置了相同的会话密钥和密码,两个应用程序没有共享相同的会话

已验证development.rb是否有内容。。。没什么

试图清理饼干等,什么都没有

然后我试图改变秘密,幸运的是,我试图改变一些简短的(我的秘密),然后一些尴尬的事情发生了。运行应用程序1正常,但运行应用程序2引发:

c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/session/cookie_store.rb:188:in `ensure_secret_secure': Secret should be something secure, like "f1e78444a4c3402165606a8314d29704".  The value you provided, "myownsecret", is shorter than the minimum length of 30 characters (ArgumentError)
    from c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_c
但这两款应用都在2.3.2版本中运行

然后,我尝试了这两个应用程序的控制台,并验证了秘密是非常相同的


那么,在这里有什么影响呢?

可能与域名有关?我非常确定会话cookie是按域存储的。您可以尝试使用下面的代码覆盖它-前提是您为每个应用程序使用具有不同子域的同一个域(将其放在您的config/environments/production.rb-或development.rb中,如果您也需要它在开发模式下工作):

编辑:在Rails 2.3中,语法是:

config.action_controller.session = { 
  :domain => ".yourdomain.com" 
}

可能和域名有关吗?我非常确定会话cookie是按域存储的。您可以尝试使用下面的代码覆盖它-前提是您为每个应用程序使用具有不同子域的同一个域(将其放在您的config/environments/production.rb-或development.rb中,如果您也需要它在开发模式下工作):

编辑:在Rails 2.3中,语法是:

config.action_controller.session = { 
  :domain => ".yourdomain.com" 
}

你解决了这个问题吗?你解决了这个问题吗?