ResetPasswordMfaWebAuthnPlatformChallenge
// Assuming 'sdk' is an instance of ResetPasswordMfaWebAuthnPlatformChallenge
try {
await sdk . continueWithPasskey ({
rememberDevice: true // if user checked the box and sdk.screen.showRememberDevice is true
});
// On success, Auth0 handles redirection.
} catch ( error ) {
console . error ( "Platform authenticator verification failed:" , error );
// If it's a WebAuthn API error (DOMException), report it
if ( error instanceof DOMException && error . name && error . message ) { // DOMException check
await sdk . reportBrowserError ({ error: { name: error . name , message: error . message } });
}
// Check sdk.transaction.errors for server-side validation messages if the page reloads.
}
ResetPasswordMfaWebAuthnPlatformChallenge
ResetPasswordMfaWebAuthnPlatformChallenge クラスの新しいインスタンスを生成します。
グローバルな universal_login_context から必要なコンテキスト(画面、トランザクションなど)を取得し、
ScreenOverride を使用して画面固有のプロパティを設定します。Universal Login コンテキストが利用できない場合、またはコンテキスト内の画面名が
ResetPasswordMfaWebAuthnPlatformChallenge.screenIdentifier と一致しない場合にスローされます。
screen.publicKey で提供されるチャレンジオプションを使用して navigator.credentials.get() を呼び出し、
WebAuthn プラットフォーム認証器チャレンジを開始します。
成功すると、action: "default" を指定して得られた認証情報アサーションを Auth0 に送信します。検証試行の送信が完了すると解決される Promise です。
正常に完了した場合、通常はリダイレクトが行われます。 screen.publicKey が存在しない場合、
navigator.credentials.get() が失敗した場合(例: ユーザーによるキャンセル NotAllowedError)、
または Auth0 へのフォーム送信が失敗した場合に例外をスローします。
navigator.credentials.get() が DOMException とともに失敗した場合は、そのエラーを捕捉して reportBrowserError を呼び出すことを推奨します。// 'sdk' が ResetPasswordMfaWebAuthnPlatformChallenge のインスタンスであると仮定
try {
await sdk . continueWithPasskey ({
rememberDevice: true // ユーザーがチェックボックスをオンにし、sdk.screen.showRememberDevice が true の場合
});
// 成功時、Auth0 がリダイレクトを処理します。
} catch ( error ) {
console . error ( "Platform authenticator verification failed:" , error );
// WebAuthn API のエラー (DOMException) の場合は報告する
if ( error instanceof DOMException && error . name && error . message ) { // DOMException の確認
await sdk . reportBrowserError ({ error: { name: error . name , message: error . message } });
}
// ページがリロードされた場合は、サーバー側の検証メッセージについて sdk.transaction.errors を確認してください。
}
コンテキストからトランザクションエラーの配列を取得します。存在しない場合は空配列を返します。 トランザクションコンテキストに含まれるエラーオブジェクトの配列です。
navigator.credentials.get() API 呼び出し中に発生したブラウザー側のエラーを報告します。
これは、ユーザーのキャンセル(NotAllowedError)、タイムアウト、その他の WebAuthn API 固有のエラーなどの問題を Auth0 に通知するために使用されます。
エラー詳細は action: "showError::{errorDetailsJsonString}" とともに送信されます。エラー報告が正常に送信されると解決される Promise です。 フォーム送信が失敗した場合(例: ネットワークエラー、不正な state)。 // UI コンポーネント内で、navigator.credentials.get() の catch ブロックにて:
// } catch (webAuthnError) {
// if (webAuthnError instanceof DOMException) {
// await sdk.reportBrowserError({
// error: { name: webAuthnError.name, message: webAuthnError.message }
// });
// } else {
// // 他のタイプのエラーを処理
// }
// }
次の内容を含むオブジェクトです:
error: navigator.credentials.get() によってスローされた DOMException から取得した、
少なくとも name と message プロパティを持つ WebAuthnErrorDetails オブジェクト。
フォーム送信に含めるその他の CustomOptions。
プロパティ 報告対象となる WebAuthn API(navigator.credentials.get())からのエラーオブジェクトです。
name と message を含める必要があります。
ユーザーが WebAuthn プラットフォームオーセンティケーターのチャレンジをスキップし、
パスワードリセット中の本人確認に別の MFA(多要素認証)手段を選択できるようにします。
このアクションは action: "pick-authenticator" を Auth0 に送信し、ユーザーを
MFA ファクターの選択画面に遷移させます。 'pick-authenticator' アクションが送信されると解決される Promise です。フォーム送信が失敗した場合(例: ネットワークエラー、不正な state)にスローされます。 // UI コンポーネント内で "Try Another Method" ボタンがクリックされたとき:
try {
await sdk . tryAnotherMethod ();
// 成功時、Auth0 が MFA ファクター選択画面へのリダイレクトを処理します。
} catch ( error ) {
console . error ( "Failed to switch MFA method:" , error );
}
任意。リクエストと共に送信するカスタムパラメータです。
これらはフォームデータに含まれます。