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

# useMfaPolling

<ParamField body="useMfaPolling(options?: MfaPollingOptions)" type={<span><a href="/docs/fr-ca/libraries/acul/react-sdk/API-Reference/Types/interfaces/MfaPollingResult">MfaPollingResult</a></span>}>
  Hook React pour gérer le polling AMF par push (par ex., attendre l’approbation d’une notification push)
  sur un écran Auth0 Advanced Customization of Universal Login (ACUL).

  Ce hook configure et contrôle une boucle de polling de longue durée qui vérifie de façon répétée
  le endpoint de challenge AMF par push jusqu’à ce que l’un des événements suivants se produise :

  * Le challenge 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/429), ce qui déclenche `options.onError`.
  * Le **composant est démonté** ou `stopPolling()` est appelé, ce qui annule le polling.

  ### Fonctionnalités clés

  * `isRunning` est **réactif** — il se met à jour automatiquement si la boucle de polling
    s’arrête d’elle-même ou est annulée.
  * Utilise une **instance de polling unique et stable** (`useRef`) pour éviter
    les requêtes réseau en double et les redémarrages involontaires lors du nouveau rendu de React.
  * **Nettoyage automatique** au démontage : aucun minuteur orphelin ni aucune requête XHR en fuite.

  ## Paramètres

  <ParamField body="options" type={<span><a href='/docs/fr-ca/libraries/acul/react-sdk/API-Reference/Types/type-aliases/MfaPollingOptions'>MfaPollingOptions</a></span>}>
    Spécifie l’intervalle de polling, la fonction de rappel de réussite (`onCompleted`) et le gestionnaire d’erreur facultatif (`onError`).
  </ParamField>

  ## Retourne

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

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

  ## É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

  * La fonction de rappel `onError` reçoit un objet [ULError](/docs/fr-ca/libraries/acul/react-sdk/API-Reference/Types/interfaces/Error)
    dont les propriétés `status` et `responseText` décrivent la réponse du serveur.
  * Les réponses internes de limitation du débit (`429`) sont gérées automatiquement :
    le polling attend la fenêtre de réinitialisation avant de réessayer.
  * Appeler `startPolling()` de façon répétée pendant l’exécution est sûr et idempotent.
</ParamField>
