リフレッシュトークン
JWTのリフレッシュトークンは新しいアクセストークンを取得するためのトークンである。 アクセストークンは役割上頻繁にやり取りされ、漏洩のリスクが高いため、短めの有効期限が設定される。 そのたびに再認証するのでは頻繁に認証が必要となり、ユーザーの利便性が損なわれるため、自動的にアクセストークンを更新する仕組みがある。 以下の図のようにアクセストークンの有効期限が切れたとしても認証サーバーにリフレッシュトークンを送信することで新しいアクセストークンを取得し、認証することができる。
sequenceDiagram participant クライアント participant 認証サーバー participant APIサーバー クライアント->>認証サーバー: ログイン(ID/PW) 認証サーバー-->>クライアント: アクセストークン & リフレッシュトークン発行 Note over クライアント: アクセストークンを保存(短命)<br/>リフレッシュトークンを安全に保存 --- 再取得後のAPI利用 --- クライアント->>APIサーバー: アクセストークンを付けてAPIリクエスト APIサーバー->>APIサーバー: JWTを公開鍵で検証 APIサーバー-->>クライアント: レスポンス