django의 사용자 검증 및 로그인 상태 유지

1548 단어
1. 사용자 검증 기능
사용자 인증 및 로그인 기능이 포함된 Django의 도입 모듈은 다음과 같습니다.
from django.contrib.auth import authenticate

여기서 메서드 authenticate()의 수신 매개변수는 다음과 같습니다.
def authenticate(request=None, **credentials):

입력 매개 변수:
user = authenticate(username=login_user, password=login_password)

authenticate 방법은 자동으로 데이터베이스에서 일치하고 검증되지만 메일박스 로그인의 검증을 실현할 수 없습니다. 이 방법을 다시 쓰고 모듈을 가져와야 합니다.
from django.contrib.auth.backends import ModelBackend

재작성 클래스를 만들려면 다음과 같이 하십시오.
class ChongxieAuthenticate(ModelBackend):
def authenticate(self, username=None, password=None, **kwargs):
try:
user = UserProfile.objects.get(Q(username=username) | Q(email=username))
if user.check_password(password):
return user
else:
return None
except Exception as e:
return None

사용자 이름이나 메일박스, 비밀번호 검증이 통과되면 이 대상을user에게 전달하고 통과되면 None으로 전송합니다
2. 로그인 상태 유지
Django 자체 login() 메서드를 사용하여 사용자 로그인 상태를 유지하고 모듈을 도입합니다.
from django.contrib.auth import login

로그인 확인이 통과되면 다음을 사용합니다.
login(request, user)

이 방법을 사용하면 서버 사이의session에서 생성됩니다.auth_user_id 및auth_user_backend 두 키 값을 클라이언트에 보내서 쿠키로 합니다. 전방 페이지는 {% if request.user.is authenticated%}를 통해 로그인 여부를 판단하여 로그인 상태의 유지 기능을 실현할 수 있습니다.
 
전재 대상:https://www.cnblogs.com/wendaobiancheng/p/9123382.html

좋은 웹페이지 즐겨찾기