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

    Class LoginId

    Hierarchy

    • BaseContext
      • LoginId

    Implements

    Index

    Constructors

    Properties

    screenIdentifier: string = ScreenIds.LOGIN_ID

    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

    • Parameters

      Returns Promise<void>

      import LoginId from "@auth0/auth0-acul-js/login-id";
      const loginIdManager = new LoginId();

      // Check if alternateConnections is available and has at least one item
      if (!loginIdManager.transaction.alternateConnections) {
      console.error('No alternate connections available.');
      }

      // Select the first available connection (users can select any available connection)
      const selectedConnection = alternateConnections[0];

      // Log the chosen connection for debugging or informational purposes
      console.log(`Selected connection: ${selectedConnection.name}`);

      // Proceed with federated login using the selected connection
      loginIdManager.federatedLogin({
      connection: selectedConnection.name,
      });

    Methods - Passkeys

    • Utility Feature

      Registers the browser's Conditional UI for passkeys (autocomplete experience).

      This method initializes a passive WebAuthn credential request using navigator.credentials.get() with mediation: "conditional". When supported, this allows the browser to display stored passkeys directly within the username field’s autocomplete dropdown.

      Call this once when the login screen is initialized (for example, on page load). After registration, focusing the username input will automatically display matching passkeys as suggestions. Selecting a passkey completes authentication without requiring additional user interaction.


      If an inputId is provided, the SDK will:

      • Validate that the element exists and is an <input>.
      • Overwrite its autocomplete attribute with "username webauthn".

      This ensures full compatibility with the Conditional Mediation API.

      If you do not provide an inputId, you are responsible for configuring the input element manually with the correct attributes:

      <input id="username" autocomplete="username webauthn" />
      

      • The autocomplete attribute must exactly contain "username webauthn". Including unrelated tokens such as "email" or "text" will prevent browsers from showing the passkey dropdown.
      • Overwriting the attribute is intentional and required for consistent behavior across browsers. Do not rely on merging or extending existing autocomplete values.
      • If Conditional Mediation is not supported by the browser, the SDK will safely no-op.

      Parameters

      • OptionalinputId: string

        Optional ID of the username <input> element (without #). Example: "username". If omitted, the developer must manually ensure the correct autocomplete attributes.

      Returns Promise<void>

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

      // Example: initializing passkey autocomplete inside an async setup block.
      async function initializeLogin() {
      const loginId = new LoginId();
      // Make sure associated HTML input exists:
      // <input id="username" autocomplete="username webauthn" />
      // Conditional UI registration.
      await loginId.registerPasskeyAutofill('username');
      }

      initializeLogin().catch(console.error);

      This method delegates to the internal registerPasskeyAutofill() utility, returning a background AbortController to manage request lifetime. It should only be invoked once per page lifecycle.