Django 개발의 html02 다시 쓰기(사용자 정의) 로그인 검증 백엔드 authenticate()

위 블로그에서 우리의 등록 로그인은 Django로 자체 로그인 검증을 하고 authenticate () 를 호출하여 사용자 이름과 비밀번호를 전달합니다. 메일박스 로그인을 지원해야 한다면 사용자 모드의views에서 로그인 검증 방법을 다시 쓰는 첫 번째 단계를 사용자 정의해야 합니다.
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', ]

좋은 웹페이지 즐겨찾기