web-dev-qa-db-ja.com

サービスとCSRFトークンの問題

カスタムコーディングやカールを行わずに、Webサービスを介してユーザーを作成しようとしています。
この投稿で75%を得ました: test_endpointの作成方法

ようやく機能しましたが、リクエストごとに資格情報を渡すだけでした。 CSRFトークンヘッダーは無視されます。

サービスとサービスの基本認証モジュールを使用しています。

ユーザー名/パスワードを含む基本認証ヘッダーを使用してservices/session/tokenに最初のGETリクエストを行い、期待どおりにトークンを取得します。次の呼び出しでは、POST to rest/user、CSRFトークン(HTTP_X_CSRF_TOKEN)、Content-type(application/json)、jsonでエンコードされたユーザーデータが本文に含まれています。トークン、ログインポップアップが表示されます。

代わりに、ユーザー名/パスワードとともに基本認証ヘッダーをユーザー作成リクエストとjsonデータと共に送信すると、機能します。 CSRFが無視されている理由がわかりません。

考え?

編集:もう1つのメモ。テストでは、FF RestClientとFF Posterプラグインの両方を使用しました。 Chromeではテストしていません。

2
bfuzze

将来のユーザーのために、紛らわしい例がたくさんあります。上記のリンクの例に基づいて、これは私の作業設定です:

URL:/rest/user.json

ヘッダー:

"X-CSRF-Token":"fsddfhbusoibdfbdsbfoubewbfw"
"Content-Type":"application/json"

体:

{
 "name":"username",
 "pass":"password",
 "mail":"email",
 "field_user_full_name":{"und":[{"value":"CHECK1 n CHECK2"}]},
 "roles":[4],
 "status":"1",
 "language":"und"
}
3
bfuzze