设备管理的会话不会传播到子域

时间:2012-03-30 20:11:15

标签: ruby-on-rails-3 devise

我正在使用Devise来管理Rails 3.1应用程序中的身份验证。它在我的生产服务器中工作得很好。但我只是设置了一个新的测试服务器,如果我登录到主站点,则访问子域不会识别会话。它要我再次登录。

我不记得我会在哪里解决这些信息。好像它是一些cookie设置。

我有域指向每个站点,生产和测试。制作以.net结尾,测试版本以.co。结尾。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:4)

我认为这不是设计设置,而是会话和cookie设置。

您可以通过设置变量YourApp::Application.config.session

来解决此问题

您可以在environment.rb文件或config/initializers/session_store.rb中执行此操作。 session_store.rb的示例是

YourApp::Application.config.session = {
 :session_domain => '.yourdomain.com',
 :session_key => '_yourapp',
 :expire_after => 14*24*3600,
 #:secure => true, #for secure/ssl sessions and such
 :secret      => 'somesecretgobledygook' 
}

请注意,将session_domain设置为.yourdomain.com会使您的Cookie跨子域工作。

这适用于会话。 Cookie有类似的设置。