웹 사이트에서 CMS (Content Management System)와 같은 프로젝트를 진행하고 있습니다. 나는이 시스템을 장고 파이썬으로 개발 중이다. 하지만 장고 파이썬을 처음 사용합니다.Django Python 사용자 비밀번호를 암호화하는 방법
저는 사용자 이름, 이메일, 암호 등의 필드가 포함 된 내 자신의 사용자 모델 (장고 사용자 모델 아님)을 가지고 있으며 내 관리자 패널에서 새 사용자를 만듭니다.
로그인 페이지에 게시 된 사용자 비밀번호와 암호화 된 비밀번호를 어떻게 비교할 수 있습니까?
예를 들어 pbkdf2_sha24123 $ 000asd $와 같이 db에 저장된 123의 암호를 처음 작성한 경우 ... 암호 123으로 로그인하려고 시도했지만 암호가 같지 않은 오류가 발생합니다.
from django.contrib.auth.hashers import make_password
from account.models import myUsers
password = make_password(request.POST.get('password'))
email = request.POST.get('email')
if myUsers.password == password and myUsers.email == email:
#make login and redirect to panel
else:
#show error message
내 자신의 모델처럼;
class myUsers(models.Model):
username = models.CharField(max_length=25, verbose_name='username', unique=True)
email = models.CharField(max_length=225, verbose_name='email', unique=True)
password = models.CharField(max_length=225, verbose_name='password')
created_at = models.DateTimeField(auto_now_add=True, verbose_name='created date')
secret_question = models.CharField(max_length=225, verbose_name='secret question')
secret_answer = models.CharField(max_length=225, verbose_name='secret answer')
last_login = models.DateTimeField(verbose_name='last login')
secret_guid_key = models.CharField(max_length=15, verbose_name='recover key', unique=True, editable=False, default=uuid.uuid4().hex[:15])
user_role = models.CharField(max_length=6, verbose_name='member role')
django 자체 로그인/가입 시스템이 있으며 이것으로 확인하기가 너무 쉽습니다 [link] (https://simpleisbetterthancomplex.com/tutorial/2016/06/27/how-to-use- djangos-built-in-login-system.html) –
@mohammedqudah 코멘트를 주셔서 감사하지만 그것을 사용하고 싶지는 않습니다. 나는 단지 내 자신의 모델을 만들려고 노력하고있다. – bullception
추가 필드 용으로 사용자 모델을 만든 경우 django에서 사용자 모델 확장에 대한 내용을 읽어보십시오. [link] (https://simpleisbetterthancomplex.com/tutorial/2016/07/22/how-to-extend-django-user -model.html) –