Django 개발의 html02 다시 쓰기(사용자 정의) 로그인 검증 백엔드 authenticate()
from django.contrib.auth.backends import ModelBackend
from django.db.models import Q
from .models import UserInfo
class CustomModelBackend(ModelBackend): # ModelBackend , authenticate()
"""
: 。
"""
def authenticate(self, request, username=None, password=None, **kwargs): # username
try:
# Q(username=username) | Q(email=username), , ,
user = UserInfo.objects.get(Q(username=username) | Q(email=username))
if user.check_password(password):
return user
except Exception as e:
return None
두 번째 단계, 프로젝트에서settings.py에서 사용자 정의 검증 방법을 설명합니다.
# ,
AUTHENTICATION_BACKENDS=['user.views.CustomModelBackend', ]