gpt4 book ai didi

ruby-on-rails - 同一 Controller 操作中 Rails 3 reset_session 和 cookies.delete(...) 的奇怪 session 问题

转载 作者:数据小太阳 更新时间:2023-10-29 08:13:45 27 4
gpt4 key购买 nike

在我的注销操作中,我这样做:

reset_session
cookies.delete(:rememberme)
redirect_to root_url

但是 session 没有被销毁。

当我检查 header 时,发送到我的注销操作的请求清楚地包含 session ID:

Cookie: hiddenalerts=site_vrfy_124258; __utmz=REMOVED_INFO.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); elpriv=REMOVED_INFO; SESSID=b39a9a89bb6a39ea91b620fe0da392ed; __utma=REMOVED_INFO; __utmc=REMOVED_INFO; __utmb=REMOVED_INFO

但是响应只清除了 rememberme cookie,并没有清除 session cookie:

Set-Cookie: rememberme=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT

如果我在注释掉 rememberme cookie 删除时将其与相同的 header 进行比较。请求看起来是一样的:

Cookie: hiddenalerts=site_vrfy_124258; __utmz=REMOVED_INFO.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); elpriv=REMOVED_INFO; SESSID=b39a9a89bb6a39ea91b620fe0da392ed; __utma=REMOVED_INFO; __utmc=REMOVED_INFO; __utmb=REMOVED_INFO

但响应看起来更像我期望的(并且我的 session 被正确销毁):

Set-Cookie: SESSID=50640523cf32b5b0fe8c93eb16aba6dc; path=/; HttpOnly

有没有人遇到过这种情况?我只能假设 session 处理程序和 ApplicationController 不持有对 cookie 的相同引用,因此如果您修改 Controller 中的 cookie,这会破坏 reset_session 所做的任何事情。我可以通过手动删除 session cookie 来解决这个问题,但我想先了解发生了什么,以及是否有已知的解决方法。

显然,我需要能够在注销过程中清除“记住我”cookie,否则用户将立即重新登录。

编辑 |作为错误提出的问题。我会暂时解决它。 https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/6763-deleting-a-cookie-and-calling-reset_session-in-the-same-controller-action-does-not-send-new-session-cookie

最佳答案

只是为了确保,但是您是否将此 cookie 分配给了正确的 key ? cookies [:记住我]?如果找不到您的哈希属性,则不会删除该 cookie。

关于ruby-on-rails - 同一 Controller 操作中 Rails 3 reset_session 和 cookies.delete(...) 的奇怪 session 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5853861/

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