前提条件
リフレッシュトークンのローテーションを構成してオフラインアクセスを有効にし、クライアントSDKでオフラインアクセスのスコープを要求します。useRefreshTokensを有効にする
OAuth2の仕様に従い、ブラウザーが/tokenエンドポイントからリフレッシュトークンを要求した場合、Auth0はそのクライアントに対してリフレッシュトークンローテーションが有効になっている場合にのみ、リフレッシュトークンを返します。createAuth0ClientのuseRefreshTokensを使用します。デフォルトはfalseです。このオプションをfalseに設定すると、getTokenSilently()が呼び出されて新しいアクセストークンが必要になったときに、SDKは非表示のiframeとprompt=noneを使用して新しいアクセストークンを取得しようとします。
このオプションをtrueに設定すると、loginWithRedirect(), loginWithPopup()、およびgetTokenSilently()を使用した際にoffline_accessスコープが自動的に要求されます。getTokenSilently()が呼び出されたときにアクセストークンの有効期限が切れていた場合、SDKはキャッシュからのリフレッシュトークンとrefresh_token付与タイプを一緒に使用して/tokenエンドポイントを呼び出すことにより、IDおよびアクセストークンの更新を試みます。
サイレント再認証は、認証要求があったときにprompt=noneパラメーターを送信し、非表示のiframeを使用することで行うことができます。ただしこれは、認可サーバー上にアクティブなユーザーセッションが存在する場合に限ります。useRefreshTokensがtrueに設定されていても、キャッシュ内に使用できるリフレッシュトークンがない場合、SDKはiframeを使用します。こうすることで、ユーザーは再度ログインしなくても、サイレントにリフレッシュトークンを使用するように移行することができます。
useRefreshTokensがtrueでもキャッシュにリフレッシュトークンがないために交換が失敗した場合、SDKはiframeの方法にフォールバックします(ただし、サードパーティーのクッキーがブロックされている場合、iframeも失敗することがあります)。