Passer au contenu principal
ResetPasswordMfaWebAuthnRoamingChallenge
Example
// In your UI component for the reset-password-mfa-webauthn-roaming-challenge screen:
const sdk = new ResetPasswordMfaWebAuthnRoamingChallenge();

async function handleSecurityKeyAuth() {
  try {
    const userWantsToRemember = document.getElementById('remember-device-checkbox')?.checked || false;
    await sdk.useSecurityKey({ rememberDevice: sdk.screen.showRememberDevice && userWantsToRemember });
    // On success, Auth0 typically handles redirection.
  } catch (err) {
    console.error("Security key authentication failed:", err);
    // If it's a WebAuthn API error, report it to Auth0
    if (err.name && err.message) { // Basic check for DOMException-like error
      try {
        await sdk.showError({ error: { name: err.name, message: err.message } });
      } catch (reportError) {
        console.error("Failed to report WebAuthn error:", reportError);
      }
    }
    // Mettez à jour l'interface utilisateur pour informer l'utilisateur, par exemple : « La vérification de la clé de sécurité a échoué. Veuillez réessayer. »
    // Also check `sdk.transaction.errors` if the page might have reloaded with an error message from the server.
  }
}

Constructeurs

ResetPasswordMfaWebAuthnRoamingChallenge
Constructor
Initialise une nouvelle instance de la classe ResetPasswordMfaWebAuthnRoamingChallenge. Elle récupère le contexte nécessaire (écran, transaction, etc.) à partir du contexte global.

Exceptions

Si le contexte Universal Login n’est pas disponible ou si le nom de l’écran dans le contexte ne correspond pas à ResetPasswordMfaWebAuthnRoamingChallenge.screenIdentifier.

Propriétés

branding
client
organization
prompt
screen
Contient les données et les propriétés spécifiques à cet écran,(pour le défi WebAuthn) ainsi que showRememberDevice.
tenant
transaction
untrustedData
user
screenIdentifier
string
Identifiant unique de cet écran, utilisé pour la logique interne du SDK et la télémétrie.

Méthodes

getErrors
Récupère le tableau des erreurs de transaction à partir du contexte, ou un tableau vide s’il n’en existe aucune.Un tableau d’objets d’erreur provenant du contexte de la transaction.
showError
Promise<void>
Signale à Auth0 une erreur de l’API WebAuthn côté client (provenant de navigator.credentials.get()). Cette méthode doit être appelée lorsque useSecurityKey (ou un appel direct à navigator.credentials.get()) échoue en raison d’une erreur standard de l’API WebAuthn (par exemple, NotAllowedError si l’utilisateur annule, NotFoundError, SecurityError, délai d’expiration). Elle soumet les détails de l’erreur avec action: "showError::{errorDetailsJsonString}" et une response vide.Une promesse qui se résout lorsque le rapport d’erreur est soumis avec succès. Auth0 peut alors réafficher la page avec des messages d’erreur précis dans this.transaction.errors ou effectuer une redirection.

Lève

Lève une erreur si la soumission du formulaire en tant que telle échoue (par exemple, erreur réseau, état non valide).
Example
// Dans votre interface, après avoir intercepté une erreur provenant de `sdk.useSecurityKey()` ou `navigator.credentials.get()` :
if (webAuthnError instanceof DOMException) {
  await sdk.showError({
    error: { name: webAuthnError.name, message: webAuthnError.message },
    rememberDevice: userWantsToRemember // le cas échéant
  });
}
tryAnotherMethod
Promise<void>
Permet à l’utilisateur de se soustraire au défi de l’authentificateur WebAuthn itinérant et de choisir une autre méthode d’authentification multifacteur (AMF). Cette action soumet action: "pick-authenticator" à Auth0, ce qui doit amener l’utilisateur vers un écran de sélection du facteur d’AMF.Une promesse qui se résout lorsque l’action pick-authenticator est soumise.

Lève

Lève une erreur si la soumission du formulaire échoue (par exemple, erreur réseau, état non valide).
Example
// Lorsque l’utilisateur clique sur un bouton « Essayer une autre méthode » :
await sdk.tryAnotherMethod({ rememberDevice: userWantsToRemember });
// Auth0 gère la redirection vers l’écran de sélection de l’AMF.
useSecurityKey
Promise<void>
Lance le défi de clé de sécurité WebAuthn. Cette méthode appelle en interne navigator.credentials.get() en utilisant les options de défi fournies dans this.screen.publicKey. Si l’utilisateur s’authentifie avec succès à l’aide de sa clé de sécurité, le PublicKeyCredential résultant est sérialisé en chaîne et envoyé à Auth0 avec action: "default".Une promesse qui est résolue lorsque la tentative de vérification est envoyée. Une opération réussie entraîne généralement une redirection de l’utilisateur par Auth0.

Lève des exceptions

Lève une erreur si this.screen.publicKey est absent (ce qui indique l’absence d’options de défi), si getPasskeyCredentials (qui encapsule navigator.credentials.get()) échoue (p. ex. annulation par l’utilisateur, aucun authentificateur trouvé, erreur matérielle), ou si l’envoi final du formulaire à Auth0 échoue. Il est essentiel d’intercepter les erreurs de cette méthode. Les erreurs de l’API WebAuthn (comme NotAllowedError) doivent être signalées à l’aide de showError.
Example
// Dans votre composant d'interface utilisateur pour l’écran reset-password-mfa-webauthn-roaming-challenge :
const sdk = new ResetPasswordMfaWebAuthnRoamingChallenge();

async function handleSecurityKeyAuth() {
  try {
    const userWantsToRemember = document.getElementById('remember-device-checkbox')?.checked || false;
    await sdk.useSecurityKey({ rememberDevice: sdk.screen.showRememberDevice && userWantsToRemember });
    // En cas de succès, Auth0 gère généralement la redirection.
  } catch (err) {
    console.error("Security key authentication failed:", err);
    // S'il s'agit d'une erreur de l'API WebAuthn, signalez-la à Auth0
    if (err.name && err.message) { // Vérification de base pour une erreur de type DOMException
      try {
        await sdk.showError({ error: { name: err.name, message: err.message } });
      } catch (reportError) {
        console.error("Failed to report WebAuthn error:", reportError);
      }
    }
    // Mettez à jour l’interface pour informer l’utilisateur, par exemple : "Security key verification failed. Please try again."
    // Vérifiez aussi `sdk.transaction.errors` si la page a pu être rechargée avec un message d’erreur provenant du serveur.
  }
}