简体   繁体   中英

Why am I getting "Invalid salt" in django?

I have written a code for registration and login in django. While doing login, I am getting the error "Invalid salt"

Following is the code:

@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)
            
           ...
...

How to get rid of this error?

It got solved, the hashed password was being saved as a binary instead of string at the time of registrattion.

To convert it into a string, the pin is required to be decoded at the time of creating the object. pin = pin.decode('utf-8'),

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM