Skip to main content
ローテーションを使用するには、Auth0 SPA SDK を使用します。Auth0 SPA SDK は、トークンの保存、セッション管理、その他の処理を担います。

前提条件

オフラインアクセスを有効にし、クライアント SDK で offline_access スコープをリクエストするには、リフレッシュトークンローテーションを設定する

useRefreshTokens を有効にする

OAuth2 の仕様に準拠して、ブラウザーが / にリフレッシュトークンをリクエストした場合、Auth0 は、そのクライアントで が有効になっている場合にのみ、リフレッシュトークンを返します。 createAuth0ClientuseRefreshTokens オプションを使用します。既定値は false です。このオプションが false に設定されている場合、getTokenSilently() が呼び出されて新しい が必要になると、SDK は隠し iframe と prompt=none を使って新しいアクセストークンの取得を試みます。 このオプションを true に設定すると、loginWithRedirect(), loginWithPopup(), getTokenSilently() の使用時に offline_access スコープが自動的にリクエストされます。getTokenSilently() が呼び出され、アクセストークンの有効期限が切れている場合、SDK はキャッシュ内のリフレッシュトークンとともに refresh_token グラントタイプを使用して /token エンドポイントを呼び出し、ID トークンとアクセストークンの更新を試みます。 サイレント再認証は、認証リクエストに prompt=none パラメーターを送信し、隠し iframe を使用することで実現されます。これが可能なのは、 上にアクティブなユーザーセッションがある場合です。useRefreshTokenstrue に設定していてもキャッシュ内にリフレッシュトークンがない場合、SDK は iframe メソッドを使用します。これにより、ユーザーに再度ログインさせることなく、リフレッシュトークンの使用へシームレスに移行できます。 useRefreshTokenstrue であるにもかかわらずキャッシュ内にリフレッシュトークンがないために交換に失敗した場合は、iframe メソッドにフォールバックします (この方法も、サードパーティ Cookie がブロックされていると失敗する可能性があります) 。

トークンの保存

SPA では、ID トークンとアクセストークンは認可サーバーから取得され、通常はメモリにキャッシュされます。トークンの更新 (ブラウザーの再読み込み、メモリキャッシュの制限による消去、または有効期限切れに伴うもの) は SDK が処理します。

次の例では、SDKでローカルストレージとリフレッシュトークンの両方を使用するように設定する方法を示します。

さらに詳しく