useMfaPolling(options?)
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
isRunningis 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
options?
MfaPollingOptions specifying the polling interval, success callback (
onCompleted), and optional error handler (onError).Returns
MfaPollingResultobject MfaPollingResult containing:isRunning—truewhile polling is active.startPolling()— starts or resumes polling.stopPolling()— stops polling immediately.
Supported Screens
mfa-push-challenge-pushreset-password-mfa-push-challenge-pushmfa-push-enrollment-qr
Example
Remarks
- The
onErrorcallback receives an ULError object withstatusandresponseTextdescribing 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.