【python】XserverにDjangoをデプロイしたがJWT認証ができない

2022年2月14日

ローカル環境ではうまく動いていたのに、サーバーに上げた途端に認証されなくなってしまった。

仕様

・python 3.9.9
・django 3.2.11
・django-rest-framework 3.13.1
・django-rest-framework-jwt 1.11.0
・Xserver

エラー内容

 { "detail": "認証情報が含まれていません。" }

JWT認証なのに

{ detail: "CSRF Failed: CSRF token missing or incorrect." }

リクエストのヘッダー

headers: {Authorization: "JWT " +token}, 

解決方法

デフォルト状態だとAuthorizationヘッダの中身を環境変数には入れてくれません。そのため.htaccessに下記を追記します。

RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Django,python

Posted by Next-k