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

    Class PhoneIdentifierChallenge

    Hierarchy

    • BaseContext
      • PhoneIdentifierChallenge

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

    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

    • Requests a new verification code for the user's phone number.

      Parameters

      Returns Promise<void>

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

      Submits a form POST with action: "resend-code". Auth0 responds by rendering this screen again, or the interstitial-captcha screen if a captcha is required. Either way the browser loads a new page, and the current JavaScript context, including component state and timers, is lost.

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

      To add a cooldown between resends, use resendManager(). It stores its countdown in localStorage, so the countdown survives the reload. It also disables resending when screen.data.resendLimitReached is true.

      import PhoneIdentifierChallenge from '@auth0/auth0-acul-js/phone-identifier-challenge';

      const phoneIdentifierChallenge = new PhoneIdentifierChallenge();
      phoneIdentifierChallenge.resendCode();
    • Utility Feature

      Gets resend functionality with timeout management for this screen

      Parameters

      Returns Screens.ResendControl

      ResendControl object with startResend method

      import PhoneIdentifierChallenge from '@auth0/auth0-acul-js/phone-identifier-challenge';
      const handleStatusChange = (remainingSeconds, isDisabled) => {
      setDisabled(isDisabled);
      setRemaining(remainingSeconds);
      };

      const handleTimeout = () => {
      console.log('Timeout completed, resend is now available');
      };

      const { startResend } = phoneChallenge.resendManager({
      timeoutSeconds: 30,
      onStatusChange: handleStatusChange,
      onTimeout: handleTimeout
      });

      // Call startResend when user clicks resend button
      await startResend();