django의 사용자 검증 및 로그인 상태 유지
사용자 인증 및 로그인 기능이 포함된 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.