3

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

一个控制器调用带有动作“显示”的帖子。登录后,我会显示帖子/索引页面。

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

所有这些在开发和生产中都可以正常工作(Apache在ubuntu和mysql上使用Passenger 2.2.5),除了在一种情况下出现以下问题:

问题:仅适用于 Firefox/Safari/Chrome(IE7 可以)且仅适用于 PRODUCTION,

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

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

除了“显示”之外的任何其他操作都保留了 current_user 并且工作正常。

问题:用户会话如何在像这样的帖子/id 这样的呼叫中丢失一次 - 第一次?表演动作没有做任何特别的事情。

我已将 ActiveRecord 存储和 Cookie 用于具有相同行为的会话管理。

谁有线索,不胜感激!

4

1 回答 1

3

这可能会发生,因为用户正在从: http: //yoursite.com重定向到http://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

于 2010-01-27T08:31:19.153 回答