IT

django 비밀번호 변경, 리셋 페이지 구현

bepuri 2020. 11. 12. 12:04
728x90

docs.djangoproject.com/en/3.1/topics/auth/default/#all-authentication-views

 

 

Using the Django authentication system | Django documentation | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com

이미 django auth system에서 기본적으로 제공해주고 있다.

frontend쪽에서 비밀번호를 받아서 서로 통신하도록 구현하는건 매우 비효율 적이고 보안 문제도 있다.

비밀번호를 중간에 탈취할 수 있는 문제, 인증에 대한 문제 등 따라서 서버측에서 다이렉트로 처리하는 편이 나을것이다.

 

로그인 기능은 이미 예시가 많아서, 넘어가고, 비밀번호 변경 기능에 대해서 이야기해보자~

docs.djangoproject.com/en/3.1/topics/auth/default/#django.contrib.auth.views.PasswordChangeView

 

Using the Django authentication system | Django documentation | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com

 

기본적으로 비밀번호 변경, 로그인, 패스워드 리셋 기능에 대해 기본 폼은 django auth에 의해서 구현되어있다. 하지만 개인적인 스타일 적용을 위해서 html 폼을 오버라이드 하고 싶다면 아래와 같이 해주면된다.

 

tempaltes\registration\password_change_form.html

파일을 생성해주고 원하는 스타일을 적용해주면 된다.

그렇지 않은 경우 django auth system에 의해 제공되는 기본 폼이 적용되어진다.

기본폼

 

crispy form을 적용한 폼.

crispy 폼을 적용하는 방법은 crispy form 패키지를 설치한 뒤 아래와 같이 html form 키워드 뒤에 || crispy만 붙여주면 된다. 아주 간단하다^^

{{ form|crispy }}

{{ form|crispy }}

 

템플릿 코드는 아래를 참고해서 적절하게 수정하면된다~

github.com/django/django/tree/master/django/contrib/admin/templates/registration

 

django/django

The Web framework for perfectionists with deadlines. - django/django

github.com

아래를 참고해서 페이지는 모두 구현할 필요는 없고, 패스워드 리셋을 어떻게 할것인지에 따라 구현하면된다.

learndjango.com/tutorials/django-password-reset-tutorial

 

Django Password Reset Tutorial

Implement user authentication with a password reset for Django 3.1

learndjango.com

 

 

내가 쓰는 장고버전은 구버전이라 아래 코드를 참고해서 템플릿 코드를 만들었음.

github.com/django/django/tree/35d36d946272bed06a3d7c7cd4e5b71b613e7a4f/django/contrib/admin/templates/registration

728x90