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

> pre-user-registration Action トリガーの API オブジェクトについて説明します。

# API オブジェクト

pre-user-registration Actions トリガーの API オブジェクトには、以下が含まれます。

<div id="apiaccess">
  ## `api.access`
</div>

ログインしようとしているユーザーのアクセスを変更します。たとえば、ログイン試行を拒否できます。

<div id="apiaccessdenyreason-usermessage">
  ### `api.access.deny(reason, userMessage)`
</div>

ユーザーの登録を拒否します。このActionの完了後、サインアップフローは直ちに停止し、
以降のActionsは実行されません。

**パラメータ**

<Expandable title="パラメータ" defaultOpen>
  <ParamField body="reason" type="string">
    この登録試行を拒否する理由を示す内部向けの理由です。この値は
    テナントログに表示されます。
  </ParamField>

  <ParamField body="userMessage" type="string">
    登録試行を拒否する理由を、ユーザーが理解できるように説明します。これは
    エンドユーザー向けのインターフェースに直接表示される場合があります。
  </ParamField>
</Expandable>

<div id="apiuser">
  ## `api.user`
</div>

ログインするユーザーのメタデータを変更します。

<div id="apiusersetappmetadatakey-value">
  ### `api.user.setAppMetadata(key, value)`
</div>

ログイン中のユーザーのアプリケーション固有のメタデータを設定します。

注: このメソッドはコールバック内では使用しないでください。このメソッドを呼び出しても、メタデータはすぐには更新されません。
同じフロー内の複数のActionsでこのメソッドを複数回呼び出すことができます。エンジンは変更を集約し、
フローの完了前にメタデータをまとめて更新します。

**パラメータ**

<Expandable title="パラメータ" defaultOpen>
  <ParamField body="key" type="string">
    設定するメタデータプロパティ。
  </ParamField>

  <ParamField body="value" type="unknown">
    メタデータプロパティの値。`null` を設定すると、メタデータプロパティを削除できます。
  </ParamField>
</Expandable>

<div id="apiusersetusermetadatakey-value">
  ### `api.user.setUserMetadata(key, value)`
</div>

ログインしているユーザーの一般メタデータを設定します。

注: このメソッドはコールバック内で使用しないでください。このメソッドを呼び出しても、メタデータはすぐには更新されません。
同じフロー内の複数のActionsでこのメソッドを複数回呼び出すことができます。エンジンが変更を集約し、
フローの完了前にメタデータをまとめて更新します。

**パラメータ**

<Expandable title="パラメータ" defaultOpen>
  <ParamField body="key" type="string">
    設定するメタデータプロパティ。
  </ParamField>

  <ParamField body="value" type="unknown">
    メタデータプロパティの値。`null` を設定すると、メタデータプロパティを削除できます。
  </ParamField>
</Expandable>

<div id="apicache">
  ## `api.cache`
</div>

実行間で保持されるデータを保存・取得します。

<div id="apicachedeletekey">
  ### `api.cache.delete(key)`
</div>

指定したキーのキャッシュ値を表すレコードが存在する場合、そのレコードを削除します。

**パラメータ**

<Expandable title="パラメータ" defaultOpen>
  <ParamField body="key" type="string">
    削除するキャッシュレコードのキー。
  </ParamField>
</Expandable>

<div id="apicachegetkey">
  ### `api.cache.get(key)`
</div>

指定したキーに対応するキャッシュ値のレコードが存在する場合は、それを取得します。レコードが見つかった場合、キャッシュ値は返されたオブジェクトの `value` プロパティで取得できます。

**パラメータ**

<Expandable title="パラメータ" defaultOpen>
  <ParamField body="key" type="string">
    キャッシュに保存されているレコードのキー。
  </ParamField>
</Expandable>

<div id="apicachesetkey-value-options">
  ### `api.cache.set(key, value, options)`
</div>

指定したキーに文字列値をキャッシュへ保存または更新します。

このキャッシュに保存された値は、設定されたトリガーにスコープが設定されます。
また、[Actions Cache Limits](https://auth0.com/docs/customize/actions/limitations) の制限が適用されます。

この方法で保存された値の有効期間は、指定した
`ttl` または `expires_at` の値までです。有効期間を指定しない場合、デフォルトで
15 分が使用されます。有効期間は、[Actions Cache Limits](https://auth0.com/docs/customize/actions/limitations) に記載された最大
期間を超えることはできません。

**重要**: このキャッシュは、短期間の一時的なデータ用に設計されています。指定した有効期間内であっても、
後続のトランザクションでは項目を利用できない場合があります。

**パラメータ**

<Expandable title="パラメータ" defaultOpen>
  <ParamField body="key" type="string">
    保存するレコードのキー。
  </ParamField>

  <ParamField body="value" type="string">
    保存するレコードの値。
  </ParamField>

  <ParamField body="options" type="cachesetoptions">
    キャッシュの動作を調整するためのオプション。
    任意。

    <Expandable title="options プロパティ">
      <ParamField body="expires_at" type="number">
        Unix エポックからのミリ秒単位の絶対有効期限。
        キャッシュされたレコードはそれより前に削除される場合がありますが、
        指定した `expires_at` を超えて保持されることはありません。

        *注*: `ttl` の値も
        指定されている場合は、この値を指定しないでください。両方のオプションを指定した場合は、
        より早い方の有効期限が使用されます。
        任意。
      </ParamField>

      <ParamField body="ttl" type="number">
        このキャッシュエントリの有効期間 (ミリ秒) 。
        キャッシュ値はそれより前に削除される場合がありますが、
        指定した `ttl` を超えて保持されることはありません。

        *注*: `expires_at` の値も
        指定されている場合は、この値を指定しないでください。両方のオプションを指定した場合は、
        より早い方の有効期限が使用されます。
        任意。
      </ParamField>
    </Expandable>
  </ParamField>
</Expandable>

<div id="apivalidation">
  ## `api.validation`
</div>

バリデーションエラーが発生した場合にログイン試行を拒否するなど、ログインするユーザーのアクセスを変更します。

<div id="apivalidationerrorerrorcode-errormessage">
  ### `api.validation.error(errorCode, errorMessage)`
</div>

ユーザーによる登録を拒否します。このActionの完了後、サインアップフローは直ちに停止し、以降のActionsは実行されません。

**パラメータ**

<Expandable title="パラメータ" defaultOpen>
  <ParamField body="errorCode" type="string">
    この登録試行が拒否される理由を示す、顧客定義のエラーコードです。この値は
    テナントログに表示されます。
  </ParamField>

  <ParamField body="errorMessage" type="string">
    登録試行を拒否する理由を説明する、顧客定義のメッセージです。これは
    エンドユーザー向けのインターフェースに直接表示される場合があります。
  </ParamField>
</Expandable>
