2012-03-17 146 views
1

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

Started DELETE "https://stackoverflow.com/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

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

+0

你是如何解决它的非隐身? – Trip 2014-04-05 01:50:32