【问题标题】:Sharing sessions between rails 3.1 and 2.3.12 using devise使用 devise 在 rails 3.1 和 2.3.12 之间共享会话
【发布时间】:2012-02-27 02:36:57
【问题描述】:

我正在尝试在 rails 3.1 应用程序和 rails 2.3.12 应用程序之间共享会话。 rails 3.1 应用程序是 2.3.12 应用程序的子域。两个应用都使用 devise 进行身份验证(不同版本的 Rails 兼容性)。

我已经设法让它工作到可以从任何一个应用程序访问会话变量的地步,但它在登录后失败。它失败的原因似乎是因为session[:session_id] 在登录时被重置,而留下另一个具有旧 session_id 的应用程序。

登录后如何继续共享会话?我试图阻止设计重置 session_id,但看不到发生了什么。

【问题讨论】:

    标签: ruby-on-rails session ruby-on-rails-3.1 devise


    【解决方案1】:

    查看Rails sessions 上的文档,特别是“2.5 Session Storage”。

    您需要保存会话,并且可能需要在两个应用程序上使用相同的密钥。

    【讨论】:

    • 我为这两个应用程序使用相同的密钥、秘密和域。在登录之前,我可以看到其他应用程序生成的 cookie(设计重置会话 ID)。您是否建议切换到数据库存储会话而不是 cookie 存储来解决这个问题?
    • 是的!另请查看此截屏视频railscasts.com/episodes/221-subdomains-in-rails-3,这应该对您有所帮助。
    • 切换到 active_record_store 似乎没有帮助。在登录之前,会话在应用之间保持同步。
    猜你喜欢
    • 2012-03-27
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 2018-08-29
    • 1970-01-01
    • 2022-01-24
    • 2014-07-10
    相关资源
    最近更新 更多