Почему я получаю "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'),

Вернуться на верх