Почему я получаю "Invalid salt" в django?
Я написал код для регистрации и входа в django. При выполнении входа я получаю ошибку "Invalid salt"
Ниже приведен код:
@api_view(['POST'])
def login(request):
email = request.data.get('email')
mobile_number = request.data.get('mobile_number')
pin = request.data.get('pin')
res = dict()
print(dict, "dictonaryyyyyy")
if email != None:
email_result = Users.objects.filter(email= email).first()
print(email_result.pin, "emaillll")
if email_result != None:
if bcrypt.checkpw(pin.encode("utf-8"), email_result.pin.encode('utf-8')):
# if bcrypt.checkpw(pin, )
print("........")
payload_data = dict()
payload_data['email'] = email_result.email
token = generate_token(payload_data)
print(token, "token.........")
res['messages'] = "Authentication Successful"
res['status'] = 200,
res['token'] = token
return Response(res, status = status.HTTP_200_OK)
...
...
Как избавиться от этой ошибки?
Решено, при регистрации хэшированный пароль сохранялся в двоичном виде вместо строки.
Для преобразования в строку необходимо декодировать pin во время создания объекта. pin = pin.decode('utf-8'),