0

Devise (2.1.2) と Rails (3.2.9) を使用しており、基本認証を有効にしました (テスト用)。CURL を使用して JSON POST リクエストを投稿していますが、奇妙な動作が見られます。最初にリクエストを送信したとき (サーバーの再起動後) は認証に失敗しますが、まったく同じリクエストを 2 回目に送信した後には成功します。

デバッグ時、wining_strategies は最初の試行では nil ですが、2 回目の試行では 3 つの戦略が設定されているようです。

この動作の原因は何ですか?

4

1 に答える 1

0

試す:

認証する:

curl -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -X POST http://localhost:3000/users/sign_in \
  -d "{'user' : { 'email' : 'test@example.com', 'password' : 'password'}}" \
  -c cookie

見せる:

curl -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -X GET http://localhost:3000/pages/1.xml \
  -b cookie

postリクエストについて-

Rails 3 の非 GET リクエストにはCSRF トークンが必要です。

これは、送信されたパラメーターの悪意のある偽造から保護するために、Rails がデフォルトで認証トークンをフォームに追加するためです。リクエストでこのトークンを提供しないため、レールはそれを受け入れません。これをバイパスできます

skip_before_filter :verify_authenticity_token
于 2013-01-24T09:53:08.397 に答える