投稿

[Python 100日チャレンジ] Day 88 - Flaskのユーザー認証

Flaskでログイン、セッション、パスワードハッシュ化を扱うユーザー認証の基本を学びます。

[Python 100日チャレンジ] Day 88 - Flaskのユーザー認証

認証とは

認証は、ユーザーが誰なのかを確認する仕組みです。ログイン機能では、メールアドレスやパスワードを確認し、ログイン状態をセッションで管理します。

セッション

このコードはFlaskのルート内で使う断片です。アプリのsecret_keyを設定し、認証に成功したユーザーのIDをuser_idに用意してからセッションへ保存します。ハッシュ化の例も入力済みのpasswordが前提で、会員登録画面やユーザー照合はまだ実装されていません。単にIDを保存する処理と、本人であることを確かめる処理を分けて読んでください。

1
2
3
from flask import session

session["user_id"] = user_id

セッションにユーザーIDを保存すると、次のリクエストでもログイン状態を判定できます。

パスワードはそのまま保存しない

1
2
3
4
from werkzeug.security import generate_password_hash, check_password_hash

hashed = generate_password_hash(password)
is_valid = check_password_hash(hashed, password)

パスワードは必ずハッシュ化して保存します。

ログアウト

1
session.clear()

ログアウト時は、セッション情報を削除します。

今日のゴール

認証では、ログイン状態の管理とパスワードの安全な保存が重要です。セッションとハッシュ化を使って、基本的なログイン機能を作りましょう。

この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。