1

Rails プロジェクトを rails 3.2.2 および Devise 2.0.4 にアップグレードした後、ログアウトできなくなりました。この問題は発生していません。代わりに、ログアウトをクリックしても適切にログアウト状態にならず、ユーザー オブジェクトは引き続き有効であり、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 文字を空白にしたことに注意してください)。

誰でもこの動作を説明できますか?

ありがとう!

4

1 に答える 1

0

I think this has something to do with a pre-Devise 2.0.4 session cookie. When I open up "Incognito" in my Chrome, it works as expected.

于 2012-03-17T02:51:56.450 に答える