1 。JWT長所と短所
jwtの利点:
1.分散シングルサインオンを実装すると非常に便利です
2.データは実際にはクライアントに保存されるため、データベースまたはサーバーのストレージ圧力を共有できます
jwtのデメリット:
1.データはクライアントに保存されます。サーバーはjwtのみを認識し、クライアントは認識しません。2. Jwtは有効期限を設定できますが、データはクライアントに保存されるため、有効期限の調整は簡単ではありません。
2.jwtをインストールします
pip install djangorestframework-jwt -i https://pypi.douban.com/simple
3.settings.devで
REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES' :( 'rest_framework_jwt.authentication.JSONWebTokenAuthentication'、 'rest_framework.authentication.SessionAuthentication'、 'rest_framework.authentication.BasicAuthentication'、 )、 } import datetime JWT_AUTH = { 'JWT_EXPIRATION_ 1)、##認証トークン的有効率值 }
4.手動でjwtを生成します
rest_framework_jwt.settingsからimportapi_settings jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER ペイロード= jwt_payload_handler(user) トークン= jwt_encode_handler(payload)
5.バックエンドは、ログイン認証インターフェイスを実装します(サブアプリケーションルーティングurls.py内)
from rest_framework_jwt.views import get_jwt_token urlpatterns = [ path(r'login / '、get_jwt_token)、##提供接口 ]
6.カスタムリターンデータ(user.utils.jwt_response_payload_handlerのパスの下)
def jwt_response_payload_handler(token、user = None、request = None): "" " カスタムjwt認証はデータを正常に返します " "" return { 'token':token、 'id':user.id、 'username':user.username }#これは、正常に返されたカスタムjwt認証であり、通常、サブアプリケーションの下のutilsファイルに配置され、設定で構成され、djangoにパスを通知します。
7.settings.dev構成ファイルを変更します
#JWT JWT_AUTH = { 'JWT_EXPIRATION_DELTA':datetime.timedelta(日= 1)、'JWT_RESPONSE_PAYLOAD_HANDLER': 'user.utils.jwt_response_payload_handler' }
以上が本稿の内容ですので、皆様のご勉強に役立てていただければ幸いです。