Django 사용자 정의 로그인 인증 클래스

1000 단어 Django
1. 우선views 보기 함수에 도입
from django.contrib.auth import authenticate
from django.contrib.auth.backends import ModelBackend# 
Q      
from django.db.models import Q

다시 쓰기 위한 인증 로그인 클래스
2. authenticate는 자동으로 다시 쓰는 클래스를 호출합니다
user = authenticate(request=request,username=email,password=password)

3. 로그인 클래스 다시 쓰기
class CustomBackend(ModelBackend): 
    def authenticate(self, request, username=None, password=None, **kwargs):   
        try:
            #     email\mobile....        
            user = UserProfile.objects.get(Q(email=username)|Q(mobile=username))
            # check_password            
            if  user.check_password(password):
                return user
            else:
                return None
        except Exception as e:
            return None

4.settings 구성
AUTHENTICATION_BACKENDS = (
    'login.views.CustomBackend',
)

좋은 웹페이지 즐겨찾기