0

私は現在、バックエンドが Django によって処理され、フロントエンドが ReactJS によって処理されるプロジェクトに取り組んでいます。

以前の開発者 (彼らはもはや組織に所属していません) は、すべての API を手動で開発しました。彼らは DjangoRestFramework を認識していなかったと思います。私の仕事は、REST-ify現在動作している 50 個の奇妙な API を処理することです。

DRF の汎用ビュー (List、Create、Retrieve など)を使用しています。

DRFSimpleJWTを実装するタスクも割り当てられています。以前の開発者は、トークンを作成するためにすべての関数を手動でコーディングしましたcustom authentication

API の作成を開始しました。List API と Retrieve API は正常に動作しますが、フロントエンド開発者が で POST リクエストを実行するCreateAPIViewと、説明が記載された 403 エラーが返されますcsrf cookie not set

runserver ログ ファイルにも 403 エラーが表示されます。

を無効にして(コメントして)、permission_classesに変更してみましたAllowAny

authentication_classes次に、無効化または削除に進みましたsession_authentication

場合によっては、データが通過せずOPTIONS、サーバー ログに表示されることもあります。

settings.pyファイルを確認すると、csrfmiddleware無効になっていることがわかります。これを有効にすると、すべてのリクエストで csrf エラーが発生します。私はグーグルでcors設定とdjango設定で遊んだ。何も機能しませんでした。

私の見解は非常に単純です。

MyCreateView(generics.CreateAPIView):
queryset = ModelName.objects.all
serializer_class =MySerializer
permission_classes = [IsAuthenticated,]
authentication_classes = [BasicAuthentication, SessionAuthentication,]

POST リクエストを機能させるために助けが必要です。また、SimpleJWT の使用を開始するときauthentication_classes、ビューで指定する必要がありますか? これはcorsと関係がありますか?

これsettings.py REST_FRAMEWORKは DRF のドキュメントと同じです。

ありがとう。ご指導誠に有難う御座います。

4

1 に答える 1