- リフレッシュトークンローテーションが有効な場合:
非ローテーション型リフレッシュトークンを交換すると、新しいローテーション型リフレッシュトークンが発行され、同じ
client_id、、ユーザー、テナントに対して発行されたすべての非ローテーション型トークンが削除されます。 - リフレッシュトークンローテーションが無効な場合:
ローテーション型リフレッシュトークンを交換すると、非ローテーション型リフレッシュトークンが発行され、同じ
client_id、リソースサーバー、ユーザー、テナントに対して発行されたローテーション型リフレッシュトークンファミリーが失効します。
Dashboard で設定する
- Dashboard > Applications に移動します。
- 設定するアプリケーションを選択します。
- Settings タブに移動します。
-
リフレッシュトークンローテーション で、Allow Refresh Token Rotation を有効にします。

- 自動再利用検知がトリガーされる前に、リクエストとレスポンスの間の猶予時間を考慮できるよう、リフレッシュトークンの Rotation Overlap Period (秒) を入力します。 このオーバーラップ期間により、一定時間内にローテーションされるリフレッシュトークンを複数回交換する際の同時実行に関する問題を回避しやすくなります。猶予期間中は侵害検知機能は適用されず、新しいローテーションされたリフレッシュトークンが発行されます。再利用できるのは直前のトークンのみです。ひとつ前よりさらに前のトークンを交換すると、侵害検知がトリガーされます。
- Save Changes を選択します。
リフレッシュトークンローテーションは、リフレッシュトークンのグラントタイプが有効な OIDC 準拠アプリケーションでのみサポートされています。
Auth0 SPA SDK で設定する
offline_access スコープを要求する必要があります。
-
最新版の
auth0-spa-jsSDK をインストールします。npm install @auth0/auth0-spa-js -
SDK で
useRefreshTokens: trueを設定してこの機能を有効にし、offline_accessスコープの送信を開始します。 -
リフレッシュトークンローテーションの設定を構成します。例:
属性 説明 rotation_type文字列: “rotating” または “non-rotating” expiration_type文字列: “expiring” または “non-expiring” token_lifetimeリフレッシュトークンローテーション が有効な場合、リフレッシュトークンのデフォルトの有効期間は 30 日 (2,592,000 秒) です。最大 1 年 (31,557,600 秒) まで設定できます。トークンがローテーションされても有効期間は延長されません。 leewayクライアントが同じリフレッシュトークンで再試行した際に、ネットワークの同時実行による問題でトークンが無効にならないよう、一定時間内であれば同じリフレッシュトークンの使用を許可します。デフォルトでは leeway は無効です。秒単位で設定できます。
リフレッシュトークンローテーションは、リフレッシュトークン グラントタイプが有効な OIDC 準拠アプリケーションでのみサポートされます。