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

    Class Login

    Login screen implementation class

    Hierarchy

    • BaseContext
      • Login

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

    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

    • Submits the Google ID token obtained from the Google Identity Services (GSI) SDK to complete authentication via Google One Tap.

      Check screen.googleOneTapConfig first — it is null when the feature is not enabled server-side, in which case this method should not be called.

      Parameters

      Returns Promise<void>

      Requires the Google Identity Services (GSI) script to be loaded before calling this method. Add it to your HTML: <script src="https://accounts.google.com/gsi/client" async></script> Or inject it dynamically at runtime.

      import Login from "@auth0/auth0-acul-js/login";

      const loginManager = new Login();
      const config = loginManager.screen.googleOneTapConfig;

      if (config) {
      const script = document.createElement('script');
      script.src = 'https://accounts.google.com/gsi/client';
      script.async = true;
      script.defer = true;
      script.onload = () => {
      window.google?.accounts.id.initialize({
      client_id: config.client_id,
      nonce: config.nonce,
      context: config.context,
      itp_support: config.itp_support,
      auto_select: config.auto_select,
      cancel_on_tap_outside: config.cancel_on_tap_outside,
      callback: ({ credential }) => {
      loginManager.googleOneTap({ one_tap_credential: credential });
      },
      });
      window.google?.accounts.id.prompt();
      };
      document.head.appendChild(script);
      }
    • Performs login with username/password

      Parameters

      Returns Promise<void>

      import Login from "@auth0/auth0-acul-js/login";
      const loginManager = new Login();
      loginManager.login({
      username: "testUser",
      password: "testPassword"
      });
      // An email read as one, rather than inferred from the value's shape. `identifierType` is
      // typically `screen.data.activeIdentifierType`.
      loginManager.login({
      identifier: "test@example.com",
      identifierType: "email",
      password: "testPassword"
      });
      // Phone login with a country dropdown, using a code from `countryCodes.available`. Submit the
      // national number as the identifier; the dial code is prefixed server-side.
      loginManager.login({
      identifier: "2015550123",
      identifierType: "phone",
      phoneCountryCode: "US",
      password: "testPassword"
      });

      Login submits a single identifier, so it stays denormalized: the value goes in identifier and identifierType names what it holds. Omitting identifierType submits the identifier on its own, exactly as before, with the server inferring the type. username is identifier's original spelling and still accepted in its place.