将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个字符)。
任何人都可以解释这种行为吗?
谢谢!
答案 0 :(得分:0)
我认为这与pre-Devise 2.0.4会话cookie有关。当我在Chrome中打开“隐身”时,它会按预期运行。