https://github.com/django/django/blob/master/django/contrib/auth/forms.py
UserCreationForm에서는 User 모델에서 "username" field를 하나만 가져온다.
그리고 password1, password2 2개 field에서 password를 2번 입력받고
clean_password2() 메서드에서 2개의 password가 동일하면 OK, 다르면 ValidationError를 발생시켜 입력받은 2개의 password가 동일한지 검증을 한다.
save() 함수에서 암호 지정하고 저장
user객체에 password를 넣을 때는
user.password = "xxxxx" (X)
user.set_password("xxx") (O)
왜냐하면 admin에서 아무 계정의 password 정보를 보면 아래처럼 하나의 문자열(String)로 저장되어 있다.
hash값을 비교하여 로그인처리 한다.
포맷 : 알고리즘$반복횟수$salt$hash
장고에서는 모든 인증의 기본은 Auth앱의 User이다. (구글 인증을 쓰더라도)
회원가입 View 소스 코드 (views.py)
from django.contrib.auth import get_user_model # User Model 가져오기 위함
from django.contrib.auth.forms import UserCreationForm # User 생성 Form 가져오기
from django.views.generic import CreateView
from django.conf import settings
User = get_user_model()
signup = CreateView.as_view(
model = User,
form_class = UserCreationForm,
success_url = settings.LOGIN_URL,
template_name='accounts/signup_form.html',
)
'장고 프레임워크' 카테고리의 다른 글
장고 기본 인증) 로그아웃 처리 (0) | 2020.06.22 |
---|---|
장고 기본 인증) 6 회원가입하자마자 로그인하기 (0) | 2020.06.22 |
장고 기본 인증 4) loginForm Custom (퀴즈를 맞춰야 로그인) (0) | 2020.06.21 |
장고 기본 인증) 1 로그인 처리 (0) | 2020.06.18 |
5 - mixins 상속을 통한 APIView 로직 재사용 (0) | 2020.06.17 |
댓글