リフレッシュトークン

JWTのリフレッシュトークンは新しいアクセストークンを取得するためのトークンである。 アクセストークンは役割上頻繁にやり取りされ、漏洩のリスクが高いため、短めの有効期限が設定される。 そのたびに再認証するのでは頻繁に認証が必要となり、ユーザーの利便性が損なわれるため、自動的にアクセストークンを更新する仕組みがある。 以下の図のようにアクセストークンの有効期限が切れたとしても認証サーバーにリフレッシュトークンを送信することで新しいアクセストークンを取得し、認証することができる。

sequenceDiagram
    participant クライアント
    participant 認証サーバー
    participant APIサーバー

    クライアント->>認証サーバー: ログイン(ID/PW)
    認証サーバー-->>クライアント: アクセストークン & リフレッシュトークン発行

    Note over クライアント: アクセストークンを保存(短命)<br/>リフレッシュトークンを安全に保存

     --- 再取得後のAPI利用 ---
    クライアント->>APIサーバー: アクセストークンを付けてAPIリクエスト
    APIサーバー->>APIサーバー: JWTを公開鍵で検証
    APIサーバー-->>クライアント: レスポンス

関連