Strona główna Polish Python Coders Group
   Strona główna   Pomoc Zaloguj się Rejestracja  
Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?

Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Aktualności: PyStok #42 - wystąpią Łukasz Langa i Dominik Kozaczko
Szukaj Szukaj
Strony: [1]   Do dołu
Drukuj
Wątek: Flask-Login | TypeError: object supporting the buffer API required.  (Przeczytany 1920 razy)
« : 20:43 30/12/18 »
kuba Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 1


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:

Kod
@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:

Kod
@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ę!
Zapisane
« Odpowiedz #1 : 22:58 30/12/18 »
raydeal Offline
Expert Python User

Zobacz profil
****

Reputacja: 85
Wiadomości: 503


Google na ten błąd najczęściej podają rozwiązanie w postaci dodania encodingu, czyli być może wartość pobieraną z formularza musisz potraktować "encode".
Zapisane
« Odpowiedz #2 : 14:31 26/02/19 »
DaZ Offline
Advanced Python User

Zobacz profil
**

Reputacja: 26
Wiadomości: 136


Kod
form.password.data
 

Kod
if check_password_hash(user.password, form.password):
 
Zapisane
Strony: [1]   Do góry
Drukuj
Skocz do:  

© 2007 - 2019 Polish Python Coders Group
Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines | Theme by PixelSlot