gpt4 book ai didi

ruby-on-rails - 在 Rails 3 中跨多个子域删除 session Cookie

转载 作者:行者123 更新时间:2023-12-04 06:26:46 25 4
gpt4 key购买 nike

我正在构建一个类似于 Wufoo 的 rails 应用程序。当您注册时,您将获得一个子域,您可以在主页上登录。该应用程序正在运行,因此当您登录时,您会被重定向到您的子域。问题是我无法删除两个域上的 session 。如果您在 (username.myapp.com) 上注销,它会在 (myapp.com) 上保持登录状态,反之亦然。

现在我正在使用 session[:user_id] = nil删除 session 。有没有办法删除所有域中的所有 session 。

另外,我附加了:domain => :all到我的 session_store.rb文件,以便我可以跨多个子域保持登录状态。

最佳答案

关键在于您如何设置 session cookie,因为您无法从顶级域 (myapp.com) 中删除子域 cookie (username.myapp.com)。要解决此问题,您需要将所有共享 session cookie 设置在 myapp.com 域下。为此,请按以下方式设置 session :

Rails.application.config.session_store :cookie_store, :domain => 'myapp.com'

这样,当您销毁 session ( session[:id] = nil ) 时,您将删除共享 cookie。我相信您还必须使用 session[:id] 而不是 session[:user_id] 来删除 session 。

关于ruby-on-rails - 在 Rails 3 中跨多个子域删除 session Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5173919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com