destroy_user_session_path
にリンクしてください。これは最近のバージョンで変更されたようです - 今は:database_authenticatable
が私のための破壊ルートを作成します。トークン認証されたユーザーと
トークン認証を使用するユーザーの場合、セッションを終了するための「ログアウト」/「サインアウト」アクションを実装する適切な方法は何ですか?
destroy_user_session_path
にリンクしてください。これは最近のバージョンで変更されたようです - 今は:database_authenticatable
が私のための破壊ルートを作成します。トークン認証されたユーザーと
トークン認証を使用するユーザーの場合、セッションを終了するための「ログアウト」/「サインアウト」アクションを実装する適切な方法は何ですか?
By defaultトークンを使用してログインすると、Deviseはデータベース認証戦略と同じようにセッションにユーザーを保存します。あなたは工夫の初期化子でtrue
にstateless_token
を設定することで、これを無効にすることができ
:
Devise.setup do |config|
config.stateless_token = true
end
この方法は、トークンはすべての要求で提供されなければなりません。
私が理解しているように、トークン認証はデータベース認証と一緒に使用するように設計されています。モデル番号database_authenticatable
の場合、devise_for
はセッションルートのみを追加します。これはDeviseの部分についての軽微な見落としのようですが、私の意見では、セッション中にユーザーを離れるアクセストークンは私にとってはあまり意味がありません。
とにかく、Deviseのセッションへのルートを手動で定義してみてください。いずれの場合においても
as :user do # User scope
resource :session, :controller => 'devise/sessions' do
# new_user_session | GET /users/sign_in => devise/sessions#new
get :new, :path => 'sign_in', :as => "new"
# user_session | POST /users/sign_in => devise/sessions#create
post :create, :path => 'sign_in'
# destroy_user_session | GET /users/sign_out => devise/sessions#destroy
get :destroy, :path => 'sign_out', :as => "destroy"
end
end
、the documentation for the devise_for
helperルートが作成される指定し、彼らがを指す:Devise's routing helpers(未テストコード)から適合
。
ちょっとマセウス、ポインタありがとう。私は実際には、すべての要求と共にトークンを運ぶのではなく、ユーザーセッションが格納されているのが好きだと思います。私の質問は、ステートレストークン認証を使用しないで、最後にユーザーをログアウトするにはどうすればいいですか? IOW、Deviseが私のために売るセッションを終了するにはどうしたらいいですか? –
どうやってこれらのことを学びましたか?あなたはRDocsを読んだのですか、それともソースのためにまっすぐに行きましたか? –
@Jo、更新された回答。自分のプロジェクトにDeviseを設定する際に、ステートレストークンについて学びました。私はいつも最初にドキュメントを読んでいます。ドキュメンテーションが私が知りたいと思っているものを持っていないときや、物事の仕組みを理解する必要があるときにだけ私はソースのために行く。 (これは、このような質問に答える必要があるときには役に立ちます!:P)内部の仕組みを理解することは有益ですが、必ずしも現実的ではありません(例えばRailsのコードベースは巨大です)。ドキュメンテーション、記事、チュートリアル、あなたが見つけることができるものはすべて、まず。 –