ログイン時にアクセストークンを発行する
JWTに署名し、クライアントに返します
「ログイン時にアクセストークンを発行する」はCoddyKit上の無料Flask Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはFlask Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Flask Academyコースには全4レッスンが含まれています。
ログインのハンドシェイク
ログインでは、クライアントが有効な認証情報を送信し、サーバーが後続の呼び出しで使える署名付きのアクセストークンを返します。
拡張機能をインストールする
Flask-JWT-Extendedライブラリが、署名と検証を代わりに処理します。pipで1回インストールすれば、トークンを発行できる状態になります。
pip install flask-jwt-extended署名キーを設定する
トークンには秘密情報で署名します。JWT_SECRET_KEYを設定し、有効なトークンを作成できるのは自分のサーバーだけにします。ソースコードには含めないでください。
app.config["JWT_SECRET_KEY"] = "change-me"JWTManagerを作成する
アプリをJWTManagerでラップします。このオブジェクトがFlask-JWT-Extendedをリクエスト処理に接続し、ヘルパーを使えるようにします。
from flask_jwt_extended import JWTManager
jwt = JWTManager(app)ログイン用のルート
/loginにPOSTルートを追加します。このルートでは、リクエスト本文から送信されたユーザー名とパスワードを読み取ります。
@app.post("/login")
def login():
...まず認証情報を検証する
この確認を決して省略しないでください。何かを発行する前に、パスワードが保存済みのハッシュと一致することを確認します。有効なログインでなければ、トークンもありません。
トークンを発行する
通常はユーザーIDなどのidentityを指定してcreate_access_tokenを呼び出します。そのIDがトークンのsubjectクレームになります。
from flask_jwt_extended import create_access_token
token = create_access_token(identity=user.id)JSONとして返す
トークンをJSON本文で返します。クライアントはそれを保存し、保護された呼び出しで再送します。🔑
return {"access_token": token}, 200identityがクレームを決める
渡したidentityは、後続のリクエストで読み取られる値です。数値のユーザーIDのように、小さく安定した値にしてください。
追加のクレームを設定する
トークンにロールやプランを含める必要がありますか。additional_claimsを渡すとデータも一緒に送られ、データベースにアクセスしなくても利用できます。
create_access_token(identity=uid, additional_claims={"role": "admin"})ログイン失敗を適切に処理する
認証情報が間違っている場合は、トークンを返さず401 Unauthorizedを返します。明確で一貫したエラーにより、APIの動作を予測しやすくなります。
return {"msg": "Bad credentials"}, 401確認してみましょう
実際にトークンを生成する呼び出しを思い出してください。
まとめ
認証情報を検証し、ユーザーIDを指定してcreate_access_tokenを呼び出し、JSONとして返します。まずJWT_SECRET_KEYとJWTManagerを設定してください。✅
AI チューターと学ぶ Python — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「ログイン時にアクセストークンを発行する」レッスンは無料ですか?
はい。「ログイン時にアクセストークンを発行する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Flask Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Flask Academyコースには全4レッスンが含まれています。
「ログイン時にアクセストークンを発行する」で何を学びますか?
JWTに署名し、クライアントに返します ブラウザで直接実行するハンズオンコードでFlask Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Flask Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのFlask Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「ログイン時にアクセストークンを発行する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このFlask Academyレッスンでコードを書いて実行できますか?
はい。すべてのFlask Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- セッションとステートレスなトークン
- ログイン時にアクセストークンを発行する
- jwt_requiredでエンドポイントを保護する
- リフレッシュトークンと有効期限