メインコンテンツへスキップ
CustomizedConsent
Example
// 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);
  }
}

コンストラクター

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

例外

Universal Login コンテキストが利用できない場合、またはコンテキスト内の現在の画面名が CustomizedConsent.screenIdentifier と一致しない場合にスローされます。

プロパティ

branding
client
organization
prompt
screen
Customized Consent 画面のデータおよびプロパティを保持します。 これらは ScreenOverride によって処理されます。ここには scopesauthorizationDetails が含まれます。
tenant
transaction
untrustedData
user
screenIdentifier
string
Customized Consent 画面の一意の識別子です。 この静的プロパティは、クラスが正しい画面コンテキストでインスタンス化されることを保証するために、 ソフトウェア開発キット (SDK) の BaseContext によって使用されます。

メソッド

accept
Promise<void>
要求されたパーミッションと認可情報を承諾(付与)するというユーザーの決定を送信します。 このメソッドは、/u/customized-consent?state=<transaction_state> エンドポイントに対して action: "accept" を含むフォームデータを準備して送信します。トランザクションの state は、 URL のクエリパラメーターとフォーム本文の両方に自動的に含まれます。フォーム送信が開始されると解決される Promise です。 通常、送信が成功するとサーバー側でリダイレクトが行われます。

スロー

送信中に FormHandler が回復不能な問題(例: ネットワークエラー)に遭遇した場合、エラーをスローします。 Auth0 からのサーバー側バリデーションエラー(“invalid_request” など)は JavaScript のエラーとしてはスローされず、処理後に this.transaction.errors で参照できるようになります。
deny
Promise<void>
要求されたパーミッションと認可情報を拒否するというユーザーの決定を送信します。 このメソッドは、/u/customized-consent?state=<transaction_state> エンドポイントに対して action: "deny" を含むフォームデータを準備して送信します。トランザクションの state は、 URL のクエリパラメーターとフォーム本文の両方に自動的に含まれます。フォーム送信が開始されると解決される Promise です。 送信が成功すると通常はサーバー側でリダイレクトが行われます。

スロー

FormHandler に問題(例: ネットワークエラー)が発生した場合、エラーをスローします。 サーバー側のバリデーションエラーは this.transaction.errors に反映されます。
getErrors
コンテキストからトランザクションエラーの配列を取得します。存在しない場合は空の配列を返します。トランザクションコンテキストからのエラーオブジェクトの配列です。