奇怪的authlogic问题仅在Production中

时间:2010-01-26 18:40:45

标签: ruby-on-rails authlogic

上下文:带有authlogic的rails应用程序,用于sigup和登录 设置信息:Rails 2.3.2

一个名为posts的控制器,其中包含一个动作'show'。 登录后,我会显示帖子/索引页面。

当用户点击某个项目时,会显示该项目的详细信息。相当标准的东西。

所有这些在开发和生产(Apache与Ubuntu和mysql上的Passenger 2.2.5)上工作正常和花花公子除了一个案例中的以下问题:

问题: 仅适用于Firefox / Safari / Chrome(IE7正常)且仅限于PRODUCTION,

当用户在新会话中第一次登录时  (打开新的浏览器,输入url),索引页面显示正常 当点击一个项目时,用户会神秘地记录下来 (current_user返回null)。

当您再次登录时,一切都恢复正常 - 您可以注销并登录任意次数而没有问题 - 直到您关闭浏览器并重新开始。

除了'show'之外的任何其他操作都保留了current_user并且工作正常。

问题: 用户会话如何在这样的通话中丢失      帖子/ ID只有一次 - 第一次? show动作没有做任何特别的事。

我已使用ActiveRecord Store和Cookie进行会话管理,但行为相同。

任何人都有任何线索,非常感谢!

1 个答案:

答案 0 :(得分:3)

可能会发生这种情况,因为用户正在从以下位置重定向: http://yoursite.comhttp://www.yoursite.com

这是一个提到这个问题的博客: http://garrickvanburen.com/archive/rails-cookie-settings-for-cross-subdomain-sessions

解释博客: 修复是设置: config.action_controller.session[:domain] = '.YOURDOMAIN.COM' 在environment.rb中(确保在前面添加.)。这将使cookie适用于www.yourdomain.com和yourdomain.com(以及任何其他子域)。

这里还讨论了这种技术: Losing session in rails 2.3.2 app using subdomain