Django team project 중 내가 구현한 부분은 회원가입, 로그인, 로그아웃, 특정한 user의 feed만 모아보는 page이다.
이 중 회원가입 시에 password의 조건을 확인해 주는 기능을 django에서 어떻게 하는지 찾아보니 이런 기능을 'password validation'라고 하는 것을 알았다.
Django는 기본적으로 settings.py에서 password validation 기능을 제공해 주고 있다.
# settings.py
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
다음과 같이 네가지의 default validators가 있다.
UserAttributeSimilarityValidator
password가 특정한 값과 다른지 확인해 준다.
user_attributes("username", "first_name", "last_name", "email")와 max_similarity(0.7)이 default 값으로 되어 있고, 이 값들을 원하는 값으로 바꿔줄 수 있다. 예를 들어 email 값이 password와 비슷한 것을 확인하고 싶다면 다음과 같이 정해주면 된다.
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
'OPTIONS': {
'max_similarity': 0.5,
'user_attributes': ("email")
}
},
MinimumLengthValidator
password의 최소 길이 값을 확인해 준다.
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
'OPTIONS': {
'min_length': 10,
}
},
CommonPasswordValidator
password가 요즘 많이 쓰이는 흔한 20,000개 중의 값은 아닌지 확인해 준다.
NumericPasswordValidator
password의 전체가 숫자로만 이루어지지는 않았는지 확인해 준다.
이 외에 custom을 하고 싶다면 validators.py를 새로 생성하여 작성해 주면 된다.
이 site에 가면 다양한 custom 예시들을 볼 수 있다.
https://www.letscodemore.com/blog/how-to-add-custom-password-validators-in-django/
나의 팀 프로젝트에도 적용해 봐야겠다.
'Computer Programming > AI' 카테고리의 다른 글
TIL_Django REST Framework(DRF) (0) | 2023.09.18 |
---|---|
WIL_여섯 번째 주 (0) | 2023.09.15 |
TIL_Django Project, Absolute Path와 Relative Path (0) | 2023.09.14 |
TIL_Visual Studio Code 저장 시 자동 formatting이 에러가 날 때 (0) | 2023.09.13 |
TIL_Django Project: email 인증이란 (0) | 2023.09.12 |