【问题标题】:Bizarre authlogic issue only in Production仅在生产中出现的奇怪的 authlogic 问题
【发布时间】:2011-01-09 15:32:04
【问题描述】:

上下文:带有 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)。

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

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

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

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

谁有线索,不胜感激!

【问题讨论】:

    标签: ruby-on-rails authlogic


    【解决方案1】:

    这可能是因为用户从以下位置重定向: 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

    【讨论】:

    • 解决了我的问题!非常感谢。非常感谢您的帮助。
    猜你喜欢
    • 2011-08-04
    • 2018-05-22
    • 1970-01-01
    • 2021-07-26
    • 2012-03-11
    • 2013-09-24
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多