@auth0/auth0-acul-js - v1.10.0
    Preparing search index...

    Class MfaPushChallengePush

    Class implementing the mfa-push-challenge-push screen functionality This screen is shown when a user needs to confirm a push notification during MFA

    Hierarchy

    • BaseContext
      • MfaPushChallengePush

    Implements

    Index

    Constructors

    Properties

    Optional on the interface so existing implementors of BaseMembers (e.g. test mocks) keep compiling. Always populated at runtime by the BaseContext constructor.

    experiment: Screens.ExperimentMembers | null
    screenIdentifier: string = ScreenIds.MFA_PUSH_CHALLENGE_PUSH

    Methods - Language

    • Utility Feature

      Changes the language/locale for the current authentication flow.

      This method triggers a language change by submitting the new locale preference to the server with the 'change-language' action. The language change will cause the current screen to re-render with the new locale.

      Parameters

      • options: Screens.LanguageChangeOptions

        Language change options including the target language code

        Options for changing the language/locale during the authentication flow

        • [key: string]: string | number | boolean | undefined

          Additional custom fields to be submitted along with the language change. Custom fields should be prefixed with 'ulp-'.

        • language: string

          Short language name (locale code) to be set (e.g., 'en', 'fr', 'es').

        • Optionalpersist?: "session"

          Defines persistence scope for the language preference. Currently only 'session' is supported.

          'session'
          

      Returns Promise<void>

      A promise that resolves when the form submission is complete

      import LoginId from "@auth0/auth0-acul-js/login-id";

      const loginManager = new LoginId();

      // Change language to French
      await loginManager.changeLanguage({
      language: 'fr',
      persist: 'session'
      });
      import LoginPassword from "@auth0/auth0-acul-js/login-password";

      const loginPasswordManager = new LoginPassword();

      // Change language to Spanish with additional custom data
      await loginPasswordManager.changeLanguage({
      language: 'es',
      persist: 'session',
      'ulp-custom-field': 'custom-value'
      });
      • This method is available on all screen instances that extend BaseContext
      • The language must be one of the enabled locales configured in your Auth0 tenant
      • The screen will automatically re-render with the new language after submission
      • Custom fields can be included and will be accessible in the Post Login Trigger

    Methods - Other

    • Utility Feature

      Starts and manages polling for an MFA push challenge.

      Creates a polling session that repeatedly checks the MFA push challenge endpoint at the specified interval until the challenge is approved or an error occurs. When the approval condition is met, the provided onCompleted callback is invoked and polling stops automatically.

      Use the returned MfaPushPollingControl to start, stop, or check the status of the polling process at any time.

      Parameters

      • options: Screens.MfaPollingOptions

        Configuration options for the polling process:

        • intervalMs — Optional polling interval in milliseconds (defaults to SDK’s internal value, typically 5000 ms).
        • onCompleted — Optional callback fired when the MFA push is successfully approved.
        • onError — Optional callback fired when a polling error occurs, receiving an Error.

      Returns Screens.MfaPushPollingControl

      A MfaPushPollingControl instance exposing:

      • startPolling() — Starts or resumes polling.
      • stopPolling() — Cancels polling immediately.
      • isRunning() — Indicates whether polling is currently active.
      // Start polling every 5 seconds until the push challenge is approved
      const control = mfaPushChallengePush.pollingManager({
      intervalMs: 5000,
      onCompleted: () => mfaPushChallengePush.continue(),
      onError: (error) => console.error('Polling error:', error),
      });

      // Later, cancel polling if needed
      control.stopPolling();
      • HTTP 429 (rate limit) responses are handled internally: polling automatically waits until the rate limit resets before retrying.
      • Safe to call startPolling() multiple times; it has no effect if already running.
    • Resends the push notification.

      Parameters

      Returns Promise<void>

      A promise that resolves once the form is submitted, before the page reloads. It doesn't confirm that a new notification was sent.

      Submits a form POST with action: "resend". Auth0 sends a new push notification and renders this screen again. The browser reloads the page, and the current JavaScript context, including component state, timers, and active polling, is lost.

      Code after await resendPushNotification() may still run, but anything it sets up, such as a "notification sent" message, is gone after the reload. Server-side errors appear in transaction.errors on the reloaded page. They don't reject the returned promise.

      const mfaPushChallengePush = new MfaPushChallengePush();
      await mfaPushChallengePush.resendPushNotification();