Skip to main content
useMfaPolling(options?: MfaPollingOptions)
React hook to manage MFA push polling (e.g., waiting for a push notification approval) on an Auth0 Advanced Customization of Universal Login (ACUL) screen.This hook sets up and controls a long-running polling loop that repeatedly checks the MFA push challenge endpoint until one of the following occurs:
  • The challenge is approved or denied by the user, triggering options.onCompleted.
  • An error occurs (network error, non-200/429 response), triggering options.onError.
  • The component unmounts or stopPolling() is called, which cancels polling.

Key Features

  • isRunning is reactive — it updates automatically if the polling loop stops internally or is canceled.
  • Uses a stable single polling instance (useRef) to prevent duplicate network calls and unintended restarts during React re-renders.
  • Automatic cleanup on unmount: no orphan timers or leaked XHR requests.

Parameters

Specifies the polling interval, success callback (onCompleted), and optional error handler (onError).

Returns

MfaPollingResult containing:
  • isRunningtrue while polling is active.
  • startPolling() — starts or resumes polling.
  • stopPolling() — stops polling immediately.

Supported Screens

  • mfa-push-challenge-push
  • reset-password-mfa-push-challenge-push
  • mfa-push-enrollment-qr
Example

Remarks

  • The onError callback receives an ULError object with status and responseText describing the server response.
  • Internal rate-limit responses (429) are automatically handled: polling waits for the reset window before retrying.
  • Calling startPolling() repeatedly while running is safe and idempotent.