DjangoRESTフレームワークのログイン検証JWTプラクティス

Djangoレストフレームワークjwt

http://jpadilla.github.io/django-rest-framework-jwt/

1.インストール

注:インストールするには、独自のプロジェクトのPython環境に切り替えてください

$ pip3 install djangorestframework-jwt

2.使用する

2.1グローバル設定の使用

中には、settings.py追加JSONWebTokenAuthenticationDjangoの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',
}

郵便配達員ツール

郵便配達員のリクエストを作成する

ここに写真の説明を挿入

[外部リンク画像の転送に失敗しました。ソースサイトにリーチ防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-KPcWbzdi-1599822683426)(evernotecid:// BBD579E0-7127-4377-8E81-47BEA574FA91 / appyinxiangcom / 25594833 / ENResource / p711)]
ここに写真の説明を挿入

トークンを取得

[外部リンク画像の転送に失敗しました。ソースサイトにリーチ防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-IonrVJLZ-1599822683459)(evernotecid:// BBD579E0-7127-4377-8E81-47BEA574FA91 / appyinxiangcom / 25594833 / ENResource / p709)]

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/

おすすめ

転載: blog.csdn.net/qq_22648091/article/details/108540196