私は、私のDjangoフォームの1つをテストするためにcurlを使用しています。私が試したコール(それぞれから、および読みやすさのために複数行にわたってエラーのある):Django、csrfトークン、POSTリクエストでのcurlの使用方法
(1):400エラーで(HTTPヘッダとクッキーでcsrftoken
有する)
curl
-d "{\"email\":\"[email protected]\"}"
--header "X-CSRFToken: [triple checked value from the source code of a page I already loaded from my Django app]"
--cookie "csrftoken=[same csrf value as above]"
http://127.0.0.1:8083/registrations/register/
結果データは返されません。
(2):データなしと同じ400エラーに
curl
-d "{a:1}"
--header "X-CSRFToken:[as above]"
--cookie "csrftoken=[as above];sessionid=[from header inspection in Chrome]"
http://127.0.0.1:8083/registrations/register/
((1)と同様であるが、ヘッダ性宣言のスペースなし、あまりにもクッキーでsessionid
有する)結果が返されます。
(3):メッセージとエラーコード403で
curl
-d "{a:1}"
--header "X-CSRFToken:[as above]"
http://127.0.0.1:8083/registrations/register/
(X-CSRFToken
でのみHTTPヘッダ、クッキーなし)結果:CSRFクッキーが設定されていません。
フォームをカールでテストするにはどうすればよいですか? Cookieの値とhttpヘッダー以外の要素は何ですか?
あなたはX-CSRFトークンを取得する方法を教えてできますか? '-header" X-CSRFToken:[私が既にDjangoアプリケーションからロードしたページのソースコードから3重にチェックされた値] " –