gpt4 book ai didi

ruby-on-rails-3 - 删除 Rails 中的 cookie

转载 作者:行者123 更新时间:2023-12-02 01:49:30 24 4
gpt4 key购买 nike

我有一个 cookie,它可以存在于这些域中的任何一个 - www.xyz.com 或 .xyz.com。我无法通过代码删除 cookie。由于它可以存在于任何一个域中,我假设执行以下操作就足够了:

...
cookies.delete cookie #delete cookie if it exists on current domain(www.xyz.com)
cookies.delete cookie, :domain => :all #delete cookie if it exists on root (.xyz.com)
...

但是 cookies.delete cookie, :domain => :all似乎使第一个调用无用,就好像在 www.xyz.com 上设置了 cookie,然后它就不会被删除。

关于如何删除可能存在于两个不同域中的 cookie 的任何想法?

最佳答案

好吧,Rails 不允许在一次请求中两次删除同名的 cookie,尽管它们已针对不同的域进行了设置。

假设您正在尝试注销,双重重定向是我想到的最好的方法:

def logout
cookie.delete(:user_id)
redirect_to logout_all_path
end

def logout_all
cookie.delete(:user_id, domain: :all)
end

不知道Rails 6 是否解决了这个问题,所以PR 不会受到伤害。

删除cookie时 cookie.delete(:user_id)与显式形式 cookie.delete(:user_id, domain: nil) 相同.

在您的代码中指定域不是强制性的。

关于ruby-on-rails-3 - 删除 Rails 中的 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23671567/

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