記事ディレクトリ
Djangoレストフレームワークjwt
http://jpadilla.github.io/django-rest-framework-jwt/
1.インストール
注:インストールするには、独自のプロジェクトのPython環境に切り替えてください
$ pip3 install djangorestframework-jwt
2.使用する
2.1グローバル設定の使用
中には、settings.py
追加JSONWebTokenAuthentication
DjangoのRESTフレームワークにDEFAULT_AUTHENTICATION_CLASSES
。
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication',
),
}
ではurls.py
、POSTリクエストを経由してPOSTリクエストを送信する際に、ユーザー名とパスワードを提供する必要性をユーザートークンを取得する機能を有効にすることができ、ルーティング、次のURLを追加します。
2.2設定の表示と使用
from rest_framework_jwt.authentication import JSONWebTokenAuthentication
class UsersSeriaView(APIView):
authentication_classes = [JSONWebTokenAuthentication]
permission_classes = [IsAuthenticated]
URLを構成する
from rest_framework_jwt.views import obtain_jwt_token
#...
urlpatterns = [
'',
# ...
path(r'api-token-auth/', obtain_jwt_token),
]
Tockenの有効時間と認証トークン情報のプレフィックスを設定します
ではsettings.py
設定ファイル
import datetime
JWT_AUTH = {
'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(days=7),
'JWT_AUTH_HEADER_PREFIX': 'JWT',
}
郵便配達員ツール
郵便配達員のリクエストを作成する
トークンを取得
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNTY5MTQ3MzgzLCJlbWFpbCI6ImFkbWluQHNoYXJrLmNvbSJ9.v5t9lr2zEnI0nlTfTl3FRdHMmiEMBO1Mwp5zQV6i5kY
JWTトークンを使用する
カールツール
ユーザー名adminとパスワードpassword123のユーザーを作成する場合、ターミナルで次の操作を実行することにより、エンドポイントが正しく機能しているかどうかを簡単にテストできます。
$ curl -X POST -d "username=admin&password=password123" http://localhost:8000/api-token-auth/
JSON形式で送信
$ curl -X POST -H "Content-Type: application/json" -d '{"username":"admin","password":"password123"}' http://localhost:8000/api-token-auth/
次に、トークンを使用して対応するデータを取得できます
$ curl -H "Authorization: JWT <your_token>" http://localhost:8000/protected-url/