2017-01-12 19 views
0

Flask-Userでログインが作成されましたが、手動でユーザーを検索して一致させる必要があります認証するパスワード。Flask-Userで作成したユーザーのユーザー名とパスワードを手動で一致させる方法

問題は、データベースに保存されているパスワードFlask-Userと比較するためにパスワードハッシュを再作成する方法がわかりません。 https://github.com/lingthio/Flask-User/blob/master/flask_user/passwords.pyでフラスコ・ユーザー・ソースは、私が持っているデータベースの列からしかし、塩を言及している主な理由

は:

sqlite> pragma table_info(user); 
0|id|INTEGER|1||1 
1|username|VARCHAR(50)|1||0 
2|password|VARCHAR(255)|1|''|0 
3|reset_password_token|VARCHAR(100)|1|''|0 
4|email|VARCHAR(255)|1||0 
5|confirmed_at|DATETIME|0||0 
6|is_active|BOOLEAN|1|'0'|0 
7|first_name|VARCHAR(100)|1|''|0 
8|last_name|VARCHAR(100)|1|''|0 

何の塩がありません。ですから、問題は、Flask-Userが作成したハッシュと比較できるハッシュをプレーンテキストのパスワードから生成する方法です。 ここで重要なサンプルハッシュがあります。

$2a$12$84F1dCPN1bVYEzPswDvgZu5ma1Xk5lNepvX/X9kKFYj8Q6Dy6j95q 
+1

フラスコ - ユーザーAPIを使用するのではなく、なぜこれを手動で行いたいのですか? –

答えて

1

おそらくuser_manager.hash_password関数を試してください。 https://pythonhosted.org/Flask-User/api.html

+0

私は 'user_manager.verify_password(password、user)'を使うこともできますが、userの値は?後者の場合、ユーザーオブジェクトまたはユーザーオブジェクトはどのように取得されますか?ありがとう。 – Jonathan

+0

私はそれがユーザオブジェクトだと思いますが、二重チェックをしなければなりません。そして、私はロジックを書くのではなく、 'verify_password'を使うことをお勧めします。セキュリティに関しては、フレームワークがテストされ、監査されてから、すべての作業を行うようにする方がよいでしょう。 –

関連する問題