8

Rails 認証トークンと Devise のログイン/ログアウトに問題があります。

バックボーンjsを使用して単一ページアプリを構築しているため、ajaxを使用してユーザーのログイン/ログアウトを行っています。これが私が観察しているものであり、なぜこれが起こっているのか正確にはわかりません。

レイアウトに csrf_meta_tags があります。ページが読み込まれ、ログイン ボタンをクリックしてフォームに入力し、送信すると、ログインに成功しました。ログインしたユーザーができるはずのことを実行できます。

ここで、ajax 経由で DELETE リクエストを送信するログアウト ボタンをクリックすると、正常にログアウトされます。

上記のすべてのプロセスは単一のページ上にあり、ページのリロードはすべて ajax で発生しません。

もう一度ログインをクリックしてフォームに入力すると、ajax リクエストが送信され、ログインしますが、サーバー コンソールに警告メッセージが表示されます。

WARNING: Can't verify CSRF token authenticity

そもそも、(レール)がCSRFトークンの信頼性を検証できなかった場合、なぜ(考案)ログインしたのですか?

そして今、ログインしたユーザーができるはずのことをしようとすると失敗し、フォームの投稿がdeviseからのエラーメッセージで失敗します

401 Unauthorized {"error":"You need to sign in or sign up before continuing."}

サーバーコンソールの警告

WARNING: Can't verify CSRF token authenticity

この時点でログアウトしています。自分でページを更新すると、ログインしていないことがわかります。

何が起こっている ?

初めてログアウトした後、最初の認証トークンの有効期限は切れますか?

私は使っている

rails (3.2.3)
devise (2.1.0)

前もって感謝します :)

4

1 に答える 1

1

authenticity_tokenすべての ajax リクエストで変数を送信する必要があります。ページのメタタグから入力できます。

于 2012-07-31T11:20:33.763 に答える