Ruby on rails 在应用程序之间共享rails会话
我有两个应用程序,希望他们共享他们的会话。至少到目前为止,这是微不足道的。现在我遇到了一些问题 我在environment.rb中设置了相同的会话密钥和密码,两个应用程序没有共享相同的会话 已验证development.rb是否有内容。。。没什么 试图清理饼干等,什么都没有 然后我试图改变秘密,幸运的是,我试图改变一些简短的(我的秘密),然后一些尴尬的事情发生了。运行应用程序1正常,但运行应用程序2引发: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
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"
}
你解决了这个问题吗?你解决了这个问题吗?