1.jwt Advantages and disadvantages

jwt The advantages of :

1. It's very convenient to implement distributed single sign on

2. The data is actually stored on the client side , So we can share the storage pressure of database or server

jwt The shortcomings of :

1. The data is saved on the client side , We only recognize jwt, The client is not recognized . 2. jwt You can set the expiration time , But because the data is stored on the client side , So it's not easy to adjust the expiration time .

2. install jwt

pip install djangorestframework-jwt -i https://pypi.douban.com/simple

3. stay settings.dev in

import datetime
  'JWT_EXPIRATION_DELTA': datetime.timedelta(days=1), ## Set up token Effective value

4. Generate... Manually jwt

from rest_framework_jwt.settings import api_settings
jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
payload = jwt_payload_handler(user)
token = jwt_encode_handler(payload)

5. The back end implements the login authentication interface ( In sub application routing urls.py in )

from rest_framework_jwt.views import obtain_jwt_token
urlpatterns = [
  path(r'login/', obtain_jwt_token),   ## Provide the interface

6. Custom return data ,(user.utils.jwt_response_payload_handler Under the path )

def jwt_response_payload_handler(token, user=None, request=None):
   Customize jwt Authentication successful return data
  return {
    'token': token,
    'id': user.id,
    'username': user.username
  }# This is custom jwt Authentication successful return data , It's usually placed under sub applications utils In file , And then in settings Middle configuration , Tell the path django

7. modify settings.dev The configuration file

  'JWT_EXPIRATION_DELTA': datetime.timedelta(days=1),
  'JWT_RESPONSE_PAYLOAD_HANDLER': 'user.utils.jwt_response_payload_handler',

The above is the whole content of this paper , I hope it will be helpful for your study , I also hope that you can support .