> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.generaltranslation.app/llms.txt
> Use this file to discover all available pages before exploring further.

# LoginId

<Frame>
  <img style={{maxHeight:"400px"}} src="https://mintcdn.com/generaltranslationinc/-mZh6I5893vkj3e3/docs/images/cdy7uua7fh8z/1nvMFmxC5ODCW2q7cByHv8/657d87ba1c2eb11316e6b0ef93737c99/LoginIDACUL.png?fit=max&auto=format&n=-mZh6I5893vkj3e3&q=85&s=ea40614ef7f544b2a4893f8b71534611" alt="" width="409" height="562" data-path="docs/images/cdy7uua7fh8z/1nvMFmxC5ODCW2q7cByHv8/657d87ba1c2eb11316e6b0ef93737c99/LoginIDACUL.png" />
</Frame>

```ts Example theme={null}
import LoginId from "@auth0/auth0-acul-js/login";
const loginIdManager = new LoginId();
loginIdManager.getLoginIdentifiers();
```

<div id="constructors">
  ## コンストラクター
</div>

<ParamField body="LoginId" type="Constructor">
  LoginIdManager のインスタンスを作成します。
</ParamField>

<div id="properties">
  ## プロパティ
</div>

<ParamField body="branding" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/BrandingMembers">BrandingMembers</a></span>} />

<ParamField body="client" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/ClientMembers">ClientMembers</a></span>} />

<ParamField body="organization" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/OrganizationMembers">OrganizationMembers</a></span>} />

<ParamField body="prompt" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/PromptMembers">PromptMembers</a></span>} />

<ParamField body="screen" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/ScreenMembersOnLoginId">ScreenMembersOnLoginId</a></span>} />

<ParamField body="tenant" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/TenantMembers">TenantMembers</a></span>} />

<ParamField body="transaction" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/TransactionMembersOnLoginId">TransactionMembersOnLoginId</a></span>} />

<ParamField body="untrustedData" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/UntrustedDataMembers">UntrustedDataMembers</a></span>} />

<ParamField body="user" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/UserMembers">UserMembers</a></span>} />

<ParamField body="screenIdentifier" type="string" />

<div id="methods">
  ## メソッド
</div>

<ParamField body="federatedLogin" type="Promise<void>">
  ```ts Example theme={null}
  import LoginId from "@auth0/auth0-acul-js/login-id";
  const loginIdManager = new LoginId();

  // alternateConnections が利用可能で、少なくとも 1 件以上含まれているかを確認します
  if (!loginIdManager.transaction.alternateConnections) {
    console.error('No alternate connections available.');
  }

  // 利用可能な最初の接続を選択します（ユーザーは利用可能な任意の接続を選択できます）
  const selectedConnection = alternateConnections[0];

  // デバッグまたは情報提供の目的で、選択された接続をログに記録します
  console.log(`Selected connection: ${selectedConnection.name}`);

  // 選択した接続を使用してフェデレーションによるログインを実行します
  loginIdManager.federatedLogin({
    connection: selectedConnection.name,
  });
  ```

  <Expandable title="パラメーター">
    <ParamField body="payload" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/FederatedLoginOptions">FederatedLoginOptions</a></span>}>
      **プロパティ**

      <ParamField body="connection" type="string" />
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="getErrors" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/Error">Error</a>[]</span>}>
  コンテキストからトランザクションエラーの配列を取得します。存在しない場合は空の配列を返します。
</ParamField>

<ParamField body="getLoginIdentifiers" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/type-aliases/ScreenIdentifierType">ScreenIdentifierType</a>[]</span>}>
  **`Utility Feature`**

  ログイン画面のアクティブな識別子タイプを取得します。

  ```typescript Example theme={null}
  import LoginId from "@auth0/auth0-acul-js/login";
  const loginIdManager = new LoginId();
  loginIdManager.getLoginIdentifiers();
  ```
</ParamField>

<ParamField body="login" type="Promise<void>">
  ```ts Example theme={null}
  import LoginId from "@auth0/auth0-acul-js/login-id";

  const loginIdManager = new LoginId();

  loginIdManager.login({
    username: <usernameFieldValue>
  });
  ```

  <Expandable title="パラメーター">
    <ParamField body="payload" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/LoginOptions">LoginOptions</a></span>}>
      **プロパティ**

      <ParamField body="captcha?" type="string" />

      <ParamField body="username" type="string" />
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="passkeyLogin" type="Promise<void>">
  ```ts Example theme={null}
  import LoginId from "@auth0/auth0-acul-js/login-id";
  const loginIdManager = new LoginId();

  // 内部的に、Auth0 サーバーから提供されるユーザーの利用可能なパスキー設定をマッピングします
  loginIdManager.passkeyLogin();
  ```

  <Expandable title="パラメーター">
    <ParamField body="payload?" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/CustomOptions">CustomOptions</a></span>} />
  </Expandable>
</ParamField>

<ParamField body="pickCountryCode" type="Promise<void>">
  ```ts Example theme={null}
  import LoginId from "@auth0/auth0-acul-js/login-id";
  const loginIdManager = new LoginId();

  loginIdManager.pickCountryCode();
  ```

  <Expandable title="パラメーター">
    <ParamField body="payload?" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/CustomOptions">CustomOptions</a></span>} />
  </Expandable>
</ParamField>

<div id="passkeys">
  ### パスキー
</div>

<ParamField body="registerPasskeyAutofill" type="Promise<void>">
  **`Utility Feature`**

  ブラウザーのパスキー用 Conditional UI（オートコンプリートエクスペリエンス）を登録します。

  このメソッドは、`navigator.credentials.get()` を `mediation: "conditional"` とともに使用して、受動的な WebAuthn 認証情報リクエストを初期化します。対応している場合、ブラウザーは保存済みのパスキーをユーザー名フィールドのオートコンプリートドロップダウン内に直接表示できるようになります。

  このメソッドは、ログイン画面が初期化されるとき（たとえばページロード時）に **1 回だけ** 呼び出してください。登録後は、ユーザー名入力欄にフォーカスすると、一致するパスキーが候補として自動的に表示されます。パスキーを選択すると、追加のユーザー操作を行うことなく認証が完了します。
</ParamField>

<div id="input-configuration">
  ### 入力の設定
</div>

`inputId` が指定されている場合、SDK は次のことを行います。

* 要素が存在し、`<input>` であることを検証します。
* その `autocomplete` 属性を `"webauthn username"` に上書きします。

これにより、Conditional Mediation API との完全な互換性が確保されます。

`inputId` を指定 **しない** 場合は、正しい属性を使用して
入力要素を手動で設定する必要があります。

```html theme={null}
<input id="username" autocomplete="webauthn username" />
```

***

<div id="gotchas">
  ### 注意点
</div>

* `autocomplete` 属性の値は、**必ず厳密に** `"webauthn username"` でなければなりません。
  `"email"` や `"text"` のような無関係なトークンを含めると、ブラウザーがパスキーのドロップダウンを表示しなくなります。
* この属性を上書きするのは意図された動作であり、ブラウザー間で一貫した挙動を得るために必要です。既存の autocomplete の値をマージしたり拡張したりすることに依存しないでください。
* ブラウザーが Conditional Mediation をサポートしていない場合、ソフトウェア開発キット (SDK) は安全に何も行わずに終了します (no-op)。

<div id="parameters">
  #### パラメーター
</div>

<ParamField body="inputId?" type="string">
  `string`

  ユーザー名の `<input>` 要素の ID（省略可、`#` は含めない）。例: `"username"`。
  省略した場合は、開発者が正しい `autocomplete` 属性を手動で設定する必要があります。
</ParamField>

```ts Example theme={null}
import LoginId from '@auth0/auth0-acul-js/login-id';

// 例: 非同期セットアップブロック内でパスキーのオートコンプリートを初期化します。
async function initializeLogin() {
  const loginId = new LoginId();
  // 関連するHTML input要素が存在することを確認してください:
  // <input id="username" autocomplete="webauthn username" />
  // 条件付きUIの登録。
  await loginId.registerPasskeyAutofill('username');
}

initializeLogin().catch(console.error);
```

<div id="remarks">
  #### 備考
</div>

このメソッドは内部の `registerPasskeyAutofill()` ユーティリティに処理を委譲し、
リクエストの有効期間を管理するバックグラウンドの `AbortController` を返します。ページライフサイクルあたり 1 回だけ呼び出してください。
