我正在开发一个类似于网站内容管理系统(CMS)的项目。我使用django python开发这个系统,但我对django python不太熟悉。
我有自己的用户模型(不是django用户模型),其中包含一些字段,如用户名、电子邮件、密码等,并且我从自己的管理面板中创建新用户。
如何比较加密后的密码与用户在登录页面上提交的密码。
例如,第一次创建用户时,密码为123,在数据库中保存为pbkdf2_sha24123$000asd$...。之后,我尝试使用密码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')