前提条件
リフレッシュトークンのローテーションを構成してオフラインアクセスを有効にし、クライアント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も失敗することがあります)。