본문 바로가기
개발일지/Django

Django - Model User의 비밀번호를 올바르게 설정하는 과정

by 개발에정착하고싶다 2023. 1. 23.

#1 개요

 

이 과정을 거치는 이유는 간단하다.

유저의 비밀번호가 "암호화"되지 않기 때문이다. 보통 model 설정할때 password로 그냥 해주게 되면

 

밑의 과정을 거쳐보면 알게되겠지만

user.password로 1234를 설정하게 되면

user.password를 확인했을때 1234로 보이게 된다.

 

반면에 user.set_password로 1234를 설정하게 되면

user.password로 확인해봤을때 암호화 되어서 확인이 된다.

 

# 장고 쉘 실행
python manage.py shell

# 필요 모듈 임포트
from django.contrib.auth import get_user_model

# User변수에 임포트된 모듈 담아오기. 사실상 get_user_model()은 모든 user 계정이 들어있는 것이다.
User = get_user_model()

# user계정중에서 첫번째에 해당하는 것을 user라는 변수에 다시 담아준다.
user = User.objects.first()

# 새롭게 담긴 user 변수를 확인한다.
user

# user의 password를 설정해준다.
user.password = '<원하는 값>'

# user의 설정된 password를 재확인한다.
user.password

# 최종으로 password를 저장해준다.
user.set_password('<원하는 값>')

# 하지만 set_password로 비밀번호를 지정하게 되면 password가 암호화 되어서 출력된다.
user.password