Webhooks リクエスト
有効なフックイベントが発生すると、Logto は対応する Webhook を見つけ、フック設定ごとに POST リクエストを送信します。
リクエストヘッダー
| Key | カスタマイズ可能 | 備考 | 
|---|---|---|
| user-agent | ✅ | デフォルトでは Logto (https://logto.io/)。 | 
| content-type | ✅ | デフォルトでは application/json。 | 
| logto-signature-sha-256 | リクエストボディの署名、Webhook のセキュリティ保護を参照してください。 | 
カスタマイズ可能なヘッダーは、同じキーで リクエストヘッダーをカスタマイズ することで上書きできます。
インタラクションフックイベントのリクエストボディ
利用可能なイベント:PostRegister、PostSignIn、PostResetPassword
リクエストボディは、3 種類のデータフィールドを含む JSON オブジェクトです:
type UserEntity = {
  id: string;
  username?: string;
  primaryEmail?: string;
  primaryPhone?: string;
  name?: string;
  avatar?: string;
  customData?: object;
  identities?: object;
  lastSignInAt?: string;
  createdAt?: string;
  applicationId?: string;
  isSuspended?: boolean;
};
type ApplicationEntity = {
  id: string;
  name: string;
  description?: string;
};
| フィールド | タイプ | オプション | 備考 | 
|---|---|---|---|
| hookId | string | Logto 内の識別子。 | |
| event | string | このフックをトリガーするイベント。 | |
| createdAt | string | ISO 形式でのペイロードの作成時間。 | |
| interactionEvent | string | このフックをトリガーするインタラクションイベント。 | |
| sessionId | string | ✅ | このイベントのセッション ID(インタラクション ID ではありません)、該当する場合。 | 
| userAgent | string | ✅ | このフックをトリガーするリクエストのユーザーエージェント。 | 
| userIp | string | ✅ | このフックをトリガーするリクエストの IP アドレス。 | 
| userId | string | ✅ | このイベントに関連するユーザー ID、該当する場合。 | 
| user | UserEntity | ✅ | このイベントに関連するユーザーエンティティ、該当する場合。 | 
| applicationId | string | ✅ | このイベントに関連するアプリケーション ID、該当する場合。 | 
| application | ApplicationEntity | ✅ | このイベントに関連するアプリケーション情報、該当する場合。 | 
詳細なフィールドの説明については、ユーザー および アプリケーション のリファレンスを参照してください。
データ変更フックイベントのリクエストボディ
標準リクエストボディフィールド
| フィールド | タイプ | オプション | 備考 | 
|---|---|---|---|
| hookId | string | Logto 内の識別子。 | |
| event | string | このフックをトリガーするイベント。 | |
| createdAt | string | ISO 形式でのペイロードの作成時間。 | |
| userAgent | string | ✅ | リクエストのユーザーエージェント。 | 
| ip | string | ✅ | リクエストの IP アドレス。 | 
インタラクション API コンテキストボディフィールド
ユーザーインタラクション API 呼び出しによってトリガーされるデータ変更フックイベント。
利用可能なイベント:User.Created、User.Data.Updated
| フィールド | タイプ | オプション | 備考 | 
|---|---|---|---|
| interactionEvent | string | ✅ | このフックをトリガーするインタラクションイベント。 | 
| sessionId | string | ✅ | このイベントのセッション ID(インタラクション ID ではありません)、該当する場合。 | 
| applicationId | string | ✅ | このイベントに関連するアプリケーション ID、該当する場合。 | 
| application | ApplicationEntity | ✅ | このイベントに関連するアプリケーション情報、該当する場合。 | 
Management API コンテキストボディフィールド
Management API 呼び出しによってトリガーされるデータ変更フックイベント。
| フィールド | タイプ | オプション | 備考 | 
|---|---|---|---|
| path | string | ✅ | このフックをトリガーする API 呼び出しのパス。 | 
| method | string | ✅ | このフックをトリガーする API 呼び出しのメソッド。 | 
| status | number | ✅ | このフックをトリガーする API 呼び出しのレスポンスステータスコード。 | 
| params | object | ✅ | このフックをトリガーする API 呼び出しのリクエスト koa パスパラメータ。 | 
| matchedRoute | string | ✅ | このフックをトリガーする API 呼び出しの koa マッチしたルート。Logto はこのフィールドを使用して有効なフックイベントをマッチします。 | 
データペイロードボディフィールド
ユーザーイベント
| イベント | フィールド | タイプ | オプション | 備考 | 
|---|---|---|---|---|
| User.Created | data | UserEntity | このイベントの作成されたユーザーエンティティ。 | |
| User.Data.Updated | data | UserEntity | このイベントの更新されたユーザーエンティティ。 | |
| User.Deleted | data | null | / | 
ロールイベント
type Role = {
  id: string;
  name: string;
  description: string;
  type: 'User' | 'MachineToMachine';
  isDefault: boolean;
};
type Scope = {
  id: string;
  name: string;
  description: string;
  resourceId: string;
  createdAt: number;
};
| イベント | フィールド | タイプ | オプション | 備考 | 
|---|---|---|---|---|
| Role.Created | data | Role | このイベントの作成されたロールエンティティ。 | |
| Role.Data.Updated | data | Role | このイベントの更新されたロールエンティティ。 | |
| Role.Deleted | data | null | ||
| Role.Scope.Updated | data | Scope[] | ロールに割り当てられた更新されたスコープ。 | |
| Role.Scope.Updated | roleId | string | ✅ | スコープが割り当てられたロール ID。(事前に割り当てられたスコープで新しいロールを作成することによってイベントがトリガーされた場合のみ利用可能) | 
権限 (スコープ) イベント
| イベント | フィールド | タイプ | オプション | 備考 | 
|---|---|---|---|---|
| Scope.Created | data | Scope | このイベントの作成されたスコープエンティティ。 | |
| Scope.Data.Updated | data | Scope | このイベントの更新されたスコープエンティティ。 | |
| Scope.Deleted | data | null | / | 
組織イベント
type Organization = {
  id: string;
  name: string;
  description?: string;
  customData: object;
  createdAt: number;
};
| イベント | フィールド | タイプ | オプション | 備考 | 
|---|---|---|---|---|
| Organization.Created | data | Organization | このイベントの作成された組織エンティティ。 | |
| Organization.Data.Updated | data | Organization | このイベントの更新された組織エンティティ。 | |
| Organization.Deleted | data | null | / | |
| Organization.Membership.Updated | data | null | / | 
組織ロールイベント
type OrganizationRole = {
  id: string;
  name: string;
  description?: string;
};
type OrganizationScope = {
  id: string;
  name: string;
  description?: string;
};
| イベント | フィールド | タイプ | オプション | 備考 | 
|---|---|---|---|---|
| OrganizationRole.Created | data | OrganizationRole | このイベントの作成された組織ロールエンティティ。 | |
| OrganizationRole.Data.Updated | data | OrganizationRole | このイベントの更新された組織ロールエンティティ。 | |
| OrganizationRole.Deleted | data | null | / | |
| OrganizationRole.Scope.Updated | data | null | / | |
| OrganizationRole.Scope.Updated | organizationRoleId | string | ✅ | スコープが割り当てられたロール ID。(事前に割り当てられたスコープで新しいロールを作成することによってイベントがトリガーされた場合のみ利用可能) | 
組織権限 (組織スコープ) イベント
| イベント | フィールド | タイプ | オプション | 備考 | 
|---|---|---|---|---|
| OrganizationScope.Created | data | OrganizationScope | 作成された組織スコープエンティティ。 | |
| OrganizationScope.Data.Updated | data | OrganizationScope | 更新された組織スコープエンティティ。 | |
| OrganizationScope.Deleted | data | null | / |