Initializes a new instance of the MfaWebAuthnRoamingChallenge
class.
Static
screenstatic
Reports a specific WebAuthn API error to Auth0.
This method should be used if navigator.credentials.get()
fails in a way that
verify()
doesn't automatically handle, or if the developer wants to explicitly
report an error before trying another action.
It submits the error details with action: "showError::{errorDetails}"
.
Contains the error
object with name
and message
from the WebAuthn API, and any other custom options.
A promise that resolves when the error report is submitted.
// Assuming 'sdk' is an instance of MfaWebAuthnRoamingChallenge
// And webAuthnError is an error object from a failed navigator.credentials.get() call.
try {
await sdk.reportWebAuthnError({
error: { name: webAuthnError.name, message: webAuthnError.message }
});
} catch (submitError) {
console.error("Failed to report WebAuthn error:", submitError);
}
Allows the user to opt-out of the WebAuthn challenge and select a different MFA method.
This action submits action: "pick-authenticator"
to Auth0, which should navigate
the user to an MFA factor selection screen.
Optional
options: Classes.MfaWebAuthnRoamingChallengeTryAnotherMethodOptionsOptional custom parameters for the request.
A promise that resolves when the action is submitted.
Initiates the WebAuthn challenge by calling navigator.credentials.get()
with the
options provided in screen.data.publicKeyChallengeOptions
.
If successful, it submits the resulting credential to Auth0 with action: "default"
.
If navigator.credentials.get()
fails with a known WebAuthn API error (like NotAllowedError
),
this method will internally call reportWebAuthnError
to inform Auth0.
Optional
options: Classes.VerifySecurityKeyOptionsOptional parameters for the verification process,
such as rememberDevice
and other custom options.
A promise that resolves when the verification attempt is submitted. It does not directly return data as a successful operation typically results in a redirect.
Throws an error if screen.data.publicKeyChallengeOptions
is missing,
if navigator.credentials.get()
fails with an unexpected error,
or if the form submission to Auth0 fails.
// Assuming 'sdk' is an instance of MfaWebAuthnRoamingChallenge
try {
await sdk.verify({ rememberDevice: true });
// On success, Auth0 handles redirection.
} catch (error) {
console.error("Security key verification failed:", error);
// Check sdk.transaction.errors for server-side validation messages if the page reloads.
}
MfaWebAuthnRoamingChallenge