0
0

More than 3 years have passed since last update.

【Django】Django Rest API(認証あり)にリクエストをする

Posted at

概要

DjangoのRest APIにPOSTでリクエストを行う際にちょっとハマったので、書いておこうと思います。

問題

curlで試しにGETリクエストを行ったところ、問題なく動作するが、POSTでリクエストを行ったところcsrf tokenが無効というエラーが出た

レスポンスには明確な理由が書いてなかったので、uwsgiのログを見た

WARNING Forbidden (Referer checking failed - no Referer.)
WARNING:django.security.csrf:Forbidden (Referer checking failed - no Referer.)

Refererがないと弾かれてしまうっぽい

解決方法

リクエストヘッダーに Refererを設定することで解消できた。

以下のようにすることでリクエストを行うことが出来た

$ curl -X POST -b "csrftoken=hoge; sessionid=hoge;" -H "x-csrftoken: hoge" -H "Referer: https://hoge.com" -d '{"data": "hoge"}' "https://endpoint.com/api/hoge"

GETリクエストの場合は、Refererがなくても動作したので、なくて大丈夫っぽいです

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0