贴出settings,使用DRF的jwt插件是djangorestframework-simplejwt。
AUTHENTICATION_BACKENDS
重写User认证的AUTHENTICATION后端。DRF默认的是django自带的User表,如果只改AUTH_USER_MODEL全局变量,需要补充所有django.User带的属性,is_anonymous等。因为在后面的校验中会用到这些属性。
DEFAULT_PERMISSION_CLASSES
继承restframework的BasePermission,重写DRF的permission_classes,同理选择自己Users表中的判断用户合法字段。
DEFAULT_AUTHENTICATION_CLASSES
继承rest_framework_simplejwt.authentication的JWTAuthentication,重写DRF的authentication_classes,需要重写get_user方法,选择从自定义的Users表中获取用户信息。
USER_AUTHENTICATION_RULE
最后需要重写SIMPLE_JWT中的一个属性,这个属性是首次获取token的时候,校验用户信息的方法,因为首次获取jwt token的时候时不需要去鉴权的,所以simplejwt选择在返回token的时候检查用户是否合法。