リフレッシュトークンと有効期限
再ログインせずにアクセストークンをローテーションします
「リフレッシュトークンと有効期限」はCoddyKit上の無料Flask Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはFlask Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Flask Academyコースには全4レッスンが含まれています。
トークンの有効期限が切れる理由
盗まれたトークンが危険なのは、使える間だけです。すべてのアクセストークンに短いexpiryを設定すると、リスクにさらされる期間を短縮できます。⏳
expクレーム
有効期限は、タイムスタンプであるトークンのexpクレームに保存されます。時刻がそれを過ぎると、トークンはどのような場合でも拒否されます。
有効期間を設定する
JWT_ACCESS_TOKEN_EXPIRESでアクセストークンの有効期間を制御します。15分のような短い期間が、妥当なデフォルトです。
from datetime import timedelta
app.config["JWT_ACCESS_TOKEN_EXPIRES"] = timedelta(minutes=15)再ログインの問題
有効期限を短くすると安全ですが、15分ごとにユーザーがパスワードを入力しなければならないのは不便です。これを解決するのがrefresh tokenです。
2つのトークン、2つの役割
短期間のアクセストークンはAPIを呼び出し、長期間有効なrefresh tokenは新しいアクセストークンを要求する以外のことはしません。
ログイン時に両方を発行する
ログイン時にアクセストークンとrefresh tokenを同時に発行し、両方をクライアントに返します。
from flask_jwt_extended import create_refresh_token
rt = create_refresh_token(identity=user.id)リフレッシュ用エンドポイント
jwt_required(refresh=True)で保護した/refreshルートを追加し、有効なリフレッシュトークンだけが到達できるようにします。
@app.post("/refresh")
@jwt_required(refresh=True)
def refresh():
...新しいアクセストークンを返す
/refreshの内部で識別情報を読み取り、まったく新しいaccess tokenを発行します。ユーザーはパスワードを再入力せずに処理を続けられます。🔄
new = create_access_token(identity=get_jwt_identity())
return {"access_token": new}リフレッシュトークンは長く使える
JWT_REFRESH_TOKEN_EXPIRESを数日または数週間に設定します。使用される機会が少ないため、長い有効期間にすることは許容できるトレードオフです。
app.config["JWT_REFRESH_TOKEN_EXPIRES"] = timedelta(days=30)リフレッシュトークンを安全に保管する
強力な権限を持つため、リフレッシュトークンはsecure storageに保管し、JavaScriptから平文で読み取れる場所には決して置かず、/refreshにだけ送信します。
トークンを失効させる
ユーザーを本当にログアウトさせるには、サーバーが拒否するトークンIDのblocklistを追加します。これは、ステートレス認証でときどき必要になる唯一の状態です。
クイックチェック
それぞれのトークン種別の役割を思い出してください。
まとめ
アクセストークンの有効期間を短くし、/refreshで新しいトークンを取得できる長期間有効なrefresh tokenと組み合わせます。失効させるにはblocklistを追加します。✅
AI チューターと学ぶ Python — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「リフレッシュトークンと有効期限」レッスンは無料ですか?
はい。「リフレッシュトークンと有効期限」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Flask Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Flask Academyコースには全4レッスンが含まれています。
「リフレッシュトークンと有効期限」で何を学びますか?
再ログインせずにアクセストークンをローテーションします ブラウザで直接実行するハンズオンコードでFlask Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Flask Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのFlask Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「リフレッシュトークンと有効期限」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このFlask Academyレッスンでコードを書いて実行できますか?
はい。すべてのFlask Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。