arpanneupane19 / Python-Flask-Authentication-Tutorial

MIT License
94 stars 97 forks source link

ValueError: Invalid salt on bcrypt.check_password_hash(user.password, login_form.password.data) #1

Open patmull opened 2 years ago

patmull commented 2 years ago

When I used PostgreSQL on Python 3.9 and Flask 2.0.3 and Flask-Bcrypt 1.0.1, I received the following:

return _bcrypt.hashpass(password, salt) 
ValueError: Invalid salt

I repaired it by decoding the password hash after generating the password:

bcrypt.generate_password_hash(register_form.password.data).decode('utf-8')

Full context:

if register_form.validate_on_submit():
        # hashed_password = bcrypt.generate_password_hash(register_form.password.data)
        hashed_password = bcrypt.generate_password_hash(register_form.password.data).decode('utf-8')
        new_user = User(username=register_form.username.data,
                        password=hashed_password)
        db.session.add(new_user)
        db.session.commit()
        return redirect(url_for('login'))

    return render_template('register.html', form=register_form)