> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.generaltranslation.app/llms.txt
> Use this file to discover all available pages before exploring further.

# useMfaPolling

<ParamField body="useMfaPolling(options?)" type={<span><a href="/docs/libraries/acul/react-sdk/API-Reference/Types/interfaces/MfaPollingResult">MfaPollingResult</a></span>}>
  Hook React pour gérer le sondage des notifications push AMF (MFA) (p. ex., en attente de l’approbation d’une notification push)
  sur un écran ACUL (Advanced Customization of Universal Login) d’Auth0.

  Ce hook configure et contrôle une boucle de sondage de longue durée qui vérifie de façon répétée
  le point de terminaison du défi push AMF jusqu’à ce que l’un des événements suivants se produise :

  * Le défi est **approuvé ou refusé** par l’utilisateur, ce qui déclenche `options.onCompleted`.
  * Une **erreur** se produit (erreur réseau, réponse autre que 200 ou 429), ce qui déclenche `options.onError`.
  * Le **composant est démonté** ou `stopPolling()` est appelé, ce qui annule le sondage.

  ### Fonctionnalités clés

  * `isRunning` est **réactif** — il se met automatiquement à jour si la boucle de sondage
    s’arrête en interne ou est annulée.
  * Utilise une **instance de sondage unique et stable** (`useRef`) pour éviter
    les appels réseau en double et les redémarrages involontaires lors des nouveaux rendus React.
  * **Nettoyage automatique** au démontage : aucun minuteur orphelin ni requête XHR abandonnée.

  ## Paramètres

  <ParamField body="options?" type={<span><a href='/docs/libraries/acul/react-sdk/API-Reference/Types/type-aliases/MfaPollingOptions'>MfaPollingOptions</a></span>}>
    [MfaPollingOptions](/docs/fr-CA/libraries/acul/react-sdk/API-Reference/Types/type-aliases/MfaPollingOptions) qui spécifient l’intervalle de sondage, le rappel en cas de succès (`onCompleted`) et le gestionnaire d’erreurs facultatif (`onError`).
  </ParamField>

  ## Valeur de retour

  [`MfaPollingResult`](/docs/fr-CA/libraries/acul/react-sdk/API-Reference/Types/interfaces/MfaPollingResult)

  objet [MfaPollingResult](/docs/fr-CA/libraries/acul/react-sdk/API-Reference/Types/interfaces/MfaPollingResult) contenant :

  * `isRunning` — `true` tant que le sondage est actif.
  * `startPolling()` — démarre ou reprend le sondage.
  * `stopPolling()` — arrête immédiatement le sondage.

  ## Écrans pris en charge

  * `mfa-push-challenge-push`
  * `reset-password-mfa-push-challenge-push`
  * `mfa-push-enrollment-qr`

  ```tsx Example theme={null}
  import { useMfaPolling } from '@auth0/auth0-acul-react/mfa-push-challenge-push';

  export function MfaPushStatus() {
    const { isRunning, startPolling, stopPolling } = useMfaPolling({
      intervalMs: 5000,
      onCompleted: () => console.log('Push approved!/denied'),
      onError: (error) => console.error('Polling error:', error)
    });

    return (
      <div>
        <button onClick={startPolling} disabled={isRunning}>
          {isRunning ? 'Waiting for approval…' : 'Start MFA Polling'}
        </button>
        {isRunning && <button onClick={stopPolling}>Cancel</button>}
      </div>
    );
  }
  ```

  ## Remarques

  * Le rappel `onError` reçoit un objet [ULError](/docs/fr-CA/libraries/acul/react-sdk/API-Reference/Types/interfaces/Error)
    avec `status` et `responseText` décrivant la réponse du serveur.
  * Les réponses de limitation de débit internes (`429`) sont gérées automatiquement :
    le sondage attend la fin de la fenêtre de réinitialisation avant de réessayer.
  * Appeler `startPolling()` de manière répétée pendant l’exécution est sécuritaire et idempotent.
</ParamField>
