0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

auth.py の概要

0
Posted at

auth.py は、ユーザー認証とアクセストークン(JWT)の発行・検証を担当する。

ユーザーはログイン時に一度だけ ユーザーID と パスワード を入力する。その後は、毎回パスワードを送る代わりに アクセストークン を使ってサーバーと通信する。

アクセストークン(JWT)は、主にヘッダー(アルゴリズム)・ペイロード(ユーザー情報など)・署名の3つで構成されている。

  1. アクセストークンを発行する

authenticate_user

ユーザーID・パスワード・DBセッションを受け取る。

  1. DBからユーザーを検索する。
  2. 保存されているハッシュ化済みパスワードを取得する。
  3. 入力されたパスワードと保存済みハッシュを照合する。
  4. 一致すれば、そのユーザー情報を返す。

create_access_token

トークンに含める情報(ユーザーIDなど)と有効期限を受け取り、JWTアクセストークンを生成して返す。

  1. アクセストークンを使ってAPIを利用する

get_current_user

リクエスト・アクセストークン・DBセッションを受け取る。

  1. リクエストヘッダーまたはCookieからアクセストークンを取得する。
  2. トークンをデコードしてユーザーIDを取り出す。
  3. DBにそのユーザーが存在するか確認する。
  4. 存在すれば、そのユーザー情報(またはユーザーID)を返す。

get_current_user の中では、次の関数が利用される。

authenticate_user

ログイン時にユーザーIDとパスワードを検証する。

verify_password

入力されたパスワードと、DBに保存されているハッシュ化済みパスワードを照合し、一致するかどうか(True / False)を返す。

get_password_hash

入力されたパスワードをハッシュ化して返す。新規登録やパスワード変更時に利用する。

参考
・chatGPT

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?