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

    Class PendingConsent

    Class implementing the Pending Consent screen functionality. This screen is a waiting room shown during Rich Authorization Requests (RAR) flows when no customized-consent prompt is configured. The user approves or denies the request off-browser through the My Account experience while this screen polls for the outcome.

    Hierarchy

    • BaseContext
      • PendingConsent

    Implements

    Index

    Constructors

    • Creates an instance of the PendingConsent screen.

      Returns PendingConsent

      If the Universal Login Context is not available or if the current screen name in the context does not match PendingConsent.screenIdentifier.

    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.PENDING_CONSENT

    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

    • Continues the flow once the pending consent has been resolved off-browser.

      Parameters

      Returns Promise<void>

      Submits a form POST with the transaction state and no action. Auth0 reads the approve/deny outcome from the consent status, not from the request body, so there is no separate accept or deny action. If the consent is still pending, Auth0 renders this screen again instead of redirecting, and the page reloads.

      Throws an error if FormHandler encounters an unrecoverable issue during submission (e.g., network error). Server-side validation errors from Auth0 are not thrown as JavaScript errors but are made available in this.transaction.errors after the operation.

      import PendingConsent from '@auth0/auth0-acul-js/pending-consent';

      const pendingConsent = new PendingConsent();
      await pendingConsent.continue();
    • Utility Feature

      Starts and manages polling for the pending-consent status.

      Creates a polling session that repeatedly checks the pending-consent endpoint at the specified interval until the consent is resolved off-browser or an error occurs. The consent counts as resolved when it has been either approved or denied. At that point the provided onCompleted callback is invoked and polling stops automatically. Call continue() from onCompleted to advance the flow. Auth0 then applies the approve/deny outcome.

      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 consent has been approved or denied.
        • 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.
      import PendingConsent from '@auth0/auth0-acul-js/pending-consent';

      const pendingConsent = new PendingConsent();

      // Poll every 5 seconds until the consent is approved or denied off-browser
      const control = pendingConsent.pollingManager({
      intervalMs: 5000,
      onCompleted: () => pendingConsent.continue(),
      onError: (error) => console.error('Polling error:', error),
      });

      control.startPolling();

      // 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.
      • Polling stops after a network error or a non-200 response other than 429. Once that happens, offer a manual fallback, such as a "Try again" button that calls continue(). Auth0 then checks the consent status again. Don't show it while polling is running, or it can race the automatic continue() from onCompleted.