Witam,
Próbuję stworzyć skrypt, dzięki któremu będzie można się zalogować używając bibliotek Flask i Flask-Login. Aplikacja dodaje dane użytkownika to bazy danych (sqlite) oraz hash'uje hasło (metodą sha256) jednak nie jest w stanie zalogować użytkownika za pomocą biblioteki Flask-Login.
Podczas próby logowania wyskakuje błąd:
"TypeError: object supporting the buffer API required"
Jedna linia błędu wskazuje na funkcję "check_password_hash".
Kawałek mojego kodu
A)Rejestracja:
@app.route('/register', methods=['POST', 'GET'])
def register():
form = RegisterForm()
if form.validate_on_submit():
hashed_password = generate_password_hash(form.password.data, method='sha256')
new_user = User(username=form.username.data, password=hashed_password, email=form.email.data)
db.create_all()
db.session.add(new_user)
db.session.commit()
return render_template('register_ok.html', form=form)
return render_template('register.html', form=form)
b) Logowanie:
@app.route('/login', methods=['POST', 'GET'])
def login():
form = LoginForm()
if form.validate_on_submit():
user = User.query.filter_by(username=form.username.data).first()
if user:
if check_password_hash(user.password, form.password):
login_user(user, remember=form.remember.data)
return redirect(url_for('dashboard'))
return render_template('err_login.html')
return render_template('login.html', form=form)
Czy spotkał się ktoś z Was z podobnym problemem?
Z góry dziękuję!