Я работаю над приложением для аутентификации пользователей, используя Django.Приложение позволяет пользователю создать учетную запись, а затем войти в систему.Тем не менее, на стороне входа в систему я получаю сообщение об ошибке при проверке пароля пользователя с помощью bcrypt.checkpw
Я попытался напечатать значение пароля пользователя и тот, который сохранен в базе данных.Я использую SQLite для базы данных:
print(request.POST['login_password'].encode())
print(user.password)
Вот вывод:
b'87654321'
b'$2b$12$bQ6tEDKh.tOJnnPAj84Xe.BZnGi9kI.Sc6Q4gFPeTLw9x53VSVQOW'
Я также попытался:
print(request.POST['login_password'].encode())
print(user.password.encode())
b'87654321'
b"b'$2b$12$bQ6tEDKh.tOJnnPAj84Xe.BZnGi9kI.Sc6Q4gFPeTLw9x53VSVQOW'"
Для создания пользователя:
user = MasjeedUser.objects.create(first_name=request.POST['first_name'],last_name=request.POST['last_name'],password=bcrypt.hashpw(request.POST['password'].encode(), bcrypt.gensalt()),email=request.POST['email'])
для запроса пароля:
при использовании
if bcrypt.checkpw(request.POST['login_password'].encode(),user.password)
я получаю сообщение об ошибке: Unicode-объекты должны быть закодированы перед проверкой
когда я пытался
if bcrypt.checkpw(request.POST['login_password'].encode(),user.password.encode())
я получаю как ошибку: недопустимая соль