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

# CustomizedConsent

<Frame>
  <img style={{maxHeight:"400px"}} src="https://mintcdn.com/generaltranslationinc/Q_4pAdRoZm2wi1v5/docs/images/cdy7uua7fh8z/6cK6DkpOJYTjubOGu2vpID/80c03b32275a2c332fe3216df0eca5c7/Consent.png?fit=max&auto=format&n=Q_4pAdRoZm2wi1v5&q=85&s=2b3ee5165e9d6a9073155b8650a21205" alt="" width="363" height="634" data-path="docs/images/cdy7uua7fh8z/6cK6DkpOJYTjubOGu2vpID/80c03b32275a2c332fe3216df0eca5c7/Consent.png" />
</Frame>

CustomizedConsent

```typescript Example theme={null}
// CustomizedConsent 画面 SDK の使用方法:
import CustomizedConsent from '@auth0/auth0-acul-js/customized-consent';

// カスタマイズされた同意画面のマネージャーをインスタンス化する
const consentManager = new CustomizedConsent();

// 画面データにアクセスする
const clientName = consentManager.client.name;
const userEmail = consentManager.user.email;
const requestedScopes = consentManager.screen.scopes;
const authorizationDetails = consentManager.screen.authorizationDetails;

console.log(`${clientName} is requesting consent from ${userEmail}.`);
console.log("Requested Scopes:", requestedScopes);
console.log("Authorization Details:", authorizationDetails);

// 前回の試行のトランザクションエラーにアクセスする
const transactionErrors = consentManager.transaction.errors;
if (transactionErrors && transactionErrors.length > 0) {
  transactionErrors.forEach(error => {
    console.error(`Error: ${error.message}`);
    // これらのエラーをユーザーに表示する。
  });
}

// 同意承認を処理する例
async function onAcceptConsent() {
  try {
    await consentManager.accept();
    // 成功すると、Auth0 は通常リダイレクトする。
  } catch (e) {
    console.error('Failed to accept consent:', e);
  }
}

// 同意拒否を処理する例
async function onDenyConsent() {
  try {
    await consentManager.deny({ denial_reason: "user_declined" });
    // 成功すると、Auth0 は通常リダイレクトする。
  } catch (e) {
    console.error('Failed to deny consent:', e);
  }
}
```

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

<ParamField body="CustomizedConsent" type="Constructor">
  `CustomizedConsent` 画面マネージャーのインスタンスを作成します。
  このコンストラクターは `BaseContext` を初期化し、カスタマイズされた同意画面向けに調整された `ScreenOverride` のインスタンスを用いて `screen` プロパティを設定します。

  #### 例外

  Universal Login コンテキストが利用できない場合、またはコンテキスト内の現在の画面名が `CustomizedConsent.screenIdentifier` と一致しない場合にスローされます。
</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/ScreenMembersOnCustomizedConsent">ScreenMembersOnCustomizedConsent</a></span>}>
  Customized Consent 画面のデータおよびプロパティを保持します。
  これらは `ScreenOverride` によって処理されます。ここには `scopes` と `authorizationDetails` が含まれます。
</ParamField>

<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/TransactionMembers">TransactionMembers</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">
  Customized Consent 画面の一意の識別子です。
  この静的プロパティは、クラスが正しい画面コンテキストでインスタンス化されることを保証するために、
  ソフトウェア開発キット (SDK) の `BaseContext` によって使用されます。
</ParamField>

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

<ParamField body="accept" type="Promise<void>">
  要求されたパーミッションと認可情報を承諾（付与）するというユーザーの決定を送信します。
  このメソッドは、`/u/customized-consent?state=<transaction_state>` エンドポイントに対して
  `action: "accept"` を含むフォームデータを準備して送信します。トランザクションの state は、
  URL のクエリパラメーターとフォーム本文の両方に自動的に含まれます。

  フォーム送信が開始されると解決される Promise です。
  通常、送信が成功するとサーバー側でリダイレクトが行われます。

  <div id="throws">
    #### スロー
  </div>

  送信中に `FormHandler` が回復不能な問題（例: ネットワークエラー）に遭遇した場合、エラーをスローします。
  Auth0 からのサーバー側バリデーションエラー（"invalid\_request" など）は
  JavaScript のエラーとしてはスローされず、処理後に `this.transaction.errors` で参照できるようになります。

  <Expandable title="パラメーター">
    <ParamField body="payload?" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/CustomOptions">CustomOptions</a></span>}>
      任意。リクエストと共に送信する任意のカスタムキーと値のペアを含むオブジェクトです。
      これらのパラメーターは、サーバーに送信されるフォームデータに含まれます。
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="deny" type="Promise<void>">
  要求されたパーミッションと認可情報を拒否するというユーザーの決定を送信します。
  このメソッドは、`/u/customized-consent?state=<transaction_state>` エンドポイントに対して
  `action: "deny"` を含むフォームデータを準備して送信します。トランザクションの state は、
  URL のクエリパラメーターとフォーム本文の両方に自動的に含まれます。

  フォーム送信が開始されると解決される Promise です。
  送信が成功すると通常はサーバー側でリダイレクトが行われます。

  <div id="throws">
    #### スロー
  </div>

  `FormHandler` に問題（例: ネットワークエラー）が発生した場合、エラーをスローします。
  サーバー側のバリデーションエラーは `this.transaction.errors` に反映されます。

  <Expandable title="パラメーター">
    <ParamField body="payload?" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/CustomOptions">CustomOptions</a></span>}>
      任意。リクエストと共に送信する任意のカスタムキーと値のペアを含むオブジェクトです。
      これらのパラメーターは、サーバーに送信されるフォームデータに含まれます。
    </ParamField>
  </Expandable>
</ParamField>

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

  トランザクションコンテキストからのエラーオブジェクトの配列です。
</ParamField>
