1、在INSTALLED_APPS中加入’rest_framework.authtoken’,
INSTALLED_APPS = [
‘’’
‘rest_framework.authtoken’, #
‘’’
]
2、配置jwt验证
REST_FRAMEWORK = {
# 身份认证
‘DEFAULT_AUTHENTICATION_CLASSES’: (
‘rest_framework_jwt.authentication.JSONWebTokenAuthentication’,
‘rest_framework.authentication.SessionAuthentication’,
‘rest_framework.authentication.BasicAuthentication’,
),
}
import datetime
JWT_AUTH = {
‘JWT_AUTH_HEADER_PREFIX’: ‘JWT’,
‘JWT_EXPIRATION_DELTA’: datetime.timedelta(days=1),
‘JWT_RESPONSE_PAYLOAD_HANDLER’:
‘users.views.jwt_response_payload_handler’, # 重新login登录返回函数
}
AUTH_USER_MODEL=‘users.User’ # 指定使用users APP中的 model User进行验证
settings.py 配置使用JWT
from django.contrib import admin
from django.urls import path,re_path,include
urlpatterns = [
path(‘admin/’, admin.site.urls),
re_path(r’users/’,include((‘users.urls’,‘users’),namespace=‘users’))
]
urls.py
#! /usr/bin/env python
-- coding: utf-8 --
from django.urls import path,re_path,include
from users import views
from rest_framework_jwt.views import obtain_jwt_token # 验证密码后返回token
urlpatterns = [
path(‘v1/register/’, views.RegisterView.as_view(), name=‘register’), # 注册用户
path(‘v1/login/’, obtain_jwt_token,name=‘login’), # 用户登录后返回token
path(‘v1/list/’, views.UserList.as_view(), name=‘register’), # 测试需要携带token才能访问
]
users/urls.py
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
username = models.CharField(max_length=64, unique=True)
passw