Chapter 5

Chapter 5 User Logins

5.1 Password Hashing

[概要]
ユーザーログインフォーム(Chapter 3)とデータベースの結合。

■Werkzeuig

(機能1)
パスワードをハッシュ化する。

[サンプルスクリプト] hasy_sample.py

from werkzeug.security import generate_password_hash
hash = generate_password_hash('passwrod')
print(hash)

[実行結果]

$ python hash_sample.py
pbkdf2:sha256:150000$YW2rfsHH$0cc248f6c3cdb5aa7d5d5e99b03db08543b3be2cd383b6360a935ddccb7c8300

※同じパスワードでも、毎回実行結果が違う。

(機能2)
与えられたパスワードのハッシュ値が正しいかを調べる。

[サンプルスクリプト] check_hash.py

from werkzeug.security import generate_password_hash
from werkzeug.security import check_password_hash

hash = generate_password_hash('hello')
print(check_password_hash(hash, 'hello'))
print(check_password_hash(hash, 'Hello'))

[実行結果]

$ python check_hash.py
True
False

5.2 Introduction to Flask-Login
Flask-Login拡張
ユーザーログイン状態の管理。

[インストール方法]

$ pip install flask-login

__init.py__で初期化する。

from flask_login import LoginManager

app = Flask(__name__)

login = LoginManager(app)

5.3 Preparing The User Model for Flask-Login