Django 내 장 된 인증 보 기 를 이용 하여 사용자 암호 리 셋 기능 에 대한 상세 한 설명 을 실현 합 니 다.
비밀번호 리 셋 기능 은 모두 에 게 낯 설 지 않 을 것 이 라 고 믿 습 니 다.본 고 는 주로 Django 에 내 장 된 인증 보 기 를 사용 하여 간단 한 메 일 을 통 해 비밀 번 호 를 리 셋 하 는 기능 을 실현 하 는 것 에 대해 소개 하 였 습 니 다.참고 학습 을 제공 합 니 다.다음은 더 이상 말 하지 않 겠 습 니 다.상세 한 소 개 를 살 펴 보 겠 습 니 다.
django
실현 방법
django.contrib.auth.views 에서 비밀번호 초기 화 에 사용 할 네 가지 보 기 를 제공 합 니 다.
class PasswordResetView
URL name: password_reset \#동일 하 게 유지
메 일 에 비밀 번 호 를 리 셋 하 는 링크 를 보 내 비밀 번 호 를 리 셋 합 니 다.메 일이 존재 하지 않 으 면 메 일 을 보 내지 않 지만 오류 알림 이 없 음 을 주의 하 세 요!
속성:
form django.contrib.auth.views import PasswordRestView
from django.contrib.auth.forms import PasswordRestForm
from django.contrib.auth.models import User
from django import forms
class CustomPasswordResetForm(PasswordRestForm):
# ' '
class clean_email(self):
email = self.cleaned_date.get('email', '')
if not User.objects.filter(email=email):
raise forms.ValidationError(' ')
return email
class CustomPasswordResetView(PasswordRestView):
template_name = 'your_passd_reset.html'
form_class = CustomPasswordResetForm
#urls.py
from myapp import views
urlpatterns = [
# , name URL name
url(r'^password_reset/$', views.CustomPasswordResetView.as_view(), name='password_reset'),
]
class PasswordResetDoneViewURL name: password_reset_done
메 일이 성공 적 으로 보 낸 페이지 를 표시 합 니 다.이 보 기 는 기본적으로 PasswordResetView 의 success 입 니 다.url 매개 변 수 를 호출 합 니 다.
메모:메 일이 등록 되 지 않 으 면 사용자 의 isactive 가 False 이거 나 사용 할 수 없 는 비밀번호 가 있 으 면 이 페이지 로 다시 설정 하지만 메 일 을 보 내지 않 습 니 다!
속성:
URL name: password_reset_confirm
새 암 호 를 입력 한 폼 이 있 는 페이지 를 표시 합 니 다.
속성:
URL name:password_reset_complete
사용자 에 게 비밀번호 가 리 셋 되 었 음 을 알 리 는 보 기 를 표시 합 니 다.
속성:
기본 제공 기능 과 템 플 릿 을 완전히 사용 하면 urls.py 파일 에 직접 도입 할 수 있 습 니 다.
from django.conf.urls import url, include
from django.contrib.auth import views as auth_views
urlpatterns = [
url(r'^login/$', auth_views.LoginView.as_view(), name='login'),
url(r'^logout/$', auth_views.logout_then_login, name='logout'), #
url(r'^password_reset/$', auth_views.PasswordResetView.as_view(form_class=forms.CustomPasswordResetForm), name='password_reset'), #
url(r'^password_reset/done/$', auth_views.PasswordResetDoneView.as_view(), name='password_reset_done'), #
url(r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', auth_views.PasswordResetConfirmView.as_view(), name='password_reset_confirm'), #
url(r'^reset/done/$', auth_views.PasswordResetCompleteView.as_view(), name='password_reset_complete'), #
]
참고:https://docs.djangoproject.com/en/1.11/topics/auth/default/#module-django.contrib.auth.views총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.