1. 程式人生 > >DRF自定義用戶認證

DRF自定義用戶認證

exp ont users turn username etime 用戶驗證 args 自定義

一、settings中配置

AUTHENTICATION_BACKENDS = (
    users.views.CustomBackend,
)

二、users/views.py

# users.views.py

from django.contrib.auth.backends import ModelBackend
from django.contrib.auth import get_user_model
from django.db.models import Q

User = get_user_model()

class CustomBackend(ModelBackend):
    
""" 自定義用戶驗證 """ def authenticate(self, username=None, password=None, **kwargs): try: #用戶名和手機都能登錄 user = User.objects.get( Q(username=username) | Q(mobile=username)) if user.check_password(password): return
user except Exception as e: return None

三、JWT有效時間設置

settings中配置

import datetime
#有效期限
JWT_AUTH = {
    JWT_EXPIRATION_DELTA: datetime.timedelta(days=7),    #也可以設置seconds=20
    JWT_AUTH_HEADER_PREFIX: JWT,                       #JWT跟前端保持一致,比如“token”這裏設置成JWT
}

DRF自定義用戶認證