2017-06-03 21 views
0

私はREST APIを作成するためにPython Djangoを使用しています。クライアント側は反応で開発され、スタンドアロンのアプリケーションとして作成されています。すべてのポストリクエストでCSRFトークンを渡しましたが、ブラウザからCSRFトークンを取得できませんでした。REST APIを使用しているときにヘッダーにCSRFトークンを取得して含める方法

+1

CSRFトークンはクッキーとして利用できます。正確に何が問題なのですか?どのようにReactを使用してブラウザから取得するのですか? –

+0

csrfトークンがブラウザにクッキーとして保存されていません –

+1

これは、 'CSRF_COOKIE_SECURE = True'が' settings.py'に存在し、安全でない場所にアクセスしている場合(localhostなど)に発生します。 –

答えて

0

Ajaxリクエストを行う際にCSRFを渡すにはどうすればよいですか?

まず、設定ファイルのミドルウェアリストにdjango.middleware.csrf.CsrfViewMiddlewareがあることを確認してください。このミドルウェアは、CSRF_TOKENをクッキーに設定して、あなたのAjaxリクエストに対応するように取り出すことができます。

第2に、DjangoはセッションでCSRFを保存できるようになりました。しかし、あなたの特定のケースでは、セッションでCSRF_TOKENを望んでいません。 CSRFをクッキーに含めるには、CSRF_USE_SESSIONS = False(デフォルト)が設定されていることを確認してください。

クッキーをチェックすると、そこにCSRF_TOKENがあるはずです。次のコードでjqueryを使用している場合、ajaxリクエストに動的に追加できます。

https://docs.djangoproject.com/en/1.11/ref/csrf/#setting-the-token-on-the-ajax-request

私はあなたがjqueryのを使用している場合は、Ajaxリクエストを行うためのjQueryを必要としない、リアクト使用しているので、それはあなたがそれらを行う方法あなた次第です言っています。

関連する問題