【问题标题】:After upgrading to Rails 3.2.2 and Devise 2.0.4, logout does not destroy session升级到 Rails 3.2.2 和 Devise 2.0.4 后,注销不会破坏会话
【发布时间】:2012-04-02 12:48:15
【问题描述】:

将我的 rails 项目升级到 rails 3.2.2 和 Devise 2.0.4 后,我无法再注销。我没有遇到this issue;相反,单击注销不会正确地使我处于注销状态,用户对象仍然有效并且仍然存在 current_user。这是我的日志中的内容:

Started DELETE "/users/sign_out" for 127.0.0.1 at 2012-03-16 20:54:56 -0400
Processing by Devise::SessionsController#destroy as */*
Redirected to http://localhost:3000/
Completed 302 Found in 1ms (ActiveRecord: 0.0ms)

所以,它的路由是正确的。我尝试重新安装设计,但没有成功。

在尝试调试时,我插入了以下行:

= session.inspect

进入我的模板。我发现如下:

{"session_id"=>"XXXXXXXXXX4b2aa9600eb3bee9921e05", "warden.user.user.key"=>["User", [1], "$2a$10$3/l/XXXXXXXXXXdhS.KCRe"], "_csrf_token"=>"XXXXXXXXXXVSp805CEN8U+GA4FcSWupcVLPH1RoacE8="}

Session_id 和 _csrf_token 在每次尝试注销后都会改变,但warden.user.user.key 不会改变。 (请注意,我已经删除了每个字符串的前 10 个字符)。

谁能解释这种行为?

谢谢!

【问题讨论】:

    标签: ruby-on-rails devise warden


    【解决方案1】:

    我认为这与预设计 2.0.4 会话 cookie 有关。当我在 Chrome 中打开“隐身”时,它按预期工作。

    【讨论】:

    • 你是如何解决非隐身模式的?
    猜你喜欢
    • 1970-01-01
    • 2013-02-12
    • 2019-05-17
    • 1970-01-01
    • 2018-07-31
    • 2016-02-03
    • 1970-01-01
    • 2012-11-25
    • 2012-07-30
    相关资源
    最近更新 更多