Webhooks-Anfrage
Sobald ein gültiges Hook-Ereignis ausgelöst wird, sucht Logto die entsprechenden Webhooks und sendet pro Hook-Konfiguration eine POST-Anfrage.
Anfrage-Header
| Key | Anpassbar | Hinweise |
|---|---|---|
| user-agent | ✅ | Standardmäßig Logto (https://logto.io/). |
| content-type | ✅ | Standardmäßig application/json. |
| logto-signature-sha-256 | Die Signatur des Anfrage-Bodys, siehe Webhooks absichern. |
Du kannst anpassbare Header überschreiben, indem du Anfrage-Header anpasst mit dem gleichen Schlüssel.
Interaction-Hook-Events Anfrage-Body
Verfügbare Ereignisse: PostRegister, PostSignIn, PostResetPassword
Der Anfrage-Body ist ein JSON-Objekt, das drei Arten von Datenfeldern enthält:
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;
};
enum ApplicationType {
Native = 'Native',
SPA = 'SPA',
Traditional = 'Traditional',
MachineToMachine = 'MachineToMachine',
Protected = 'Protected',
SAML = 'SAML',
}
type ApplicationEntity = {
id: string;
type: ApplicationType;
name: string;
description?: string;
};
| Feld | Typ | Optional | Hinweise |
|---|---|---|---|
| hookId | string | Die Kennung in Logto. | |
| event | string | Das Ereignis, das diesen Hook auslöst. | |
| createdAt | string | Das Erstellungsdatum der Nutzlast im ISO-Format. | |
| interactionEvent | string | Das Interaktionsereignis, das diesen Hook auslöst. | |
| sessionId | string | ✅ | Die Session-ID (nicht Interaction-ID) für dieses Ereignis, falls zutreffend. |
| userAgent | string | ✅ | Der User-Agent für die Anfrage, die diesen Hook auslöst. |
| userIp | string | ✅ | Die IP-Adresse für die Anfrage, die diesen Hook auslöst. |
| userId | string | ✅ | Die zugehörige Benutzer-ID für dieses Ereignis, falls zutreffend. |
| user | UserEntity | ✅ | Die zugehörige Benutzer-Entität für dieses Ereignis, falls zutreffend. |
| applicationId | string | ✅ | Die zugehörige Anwendungs-ID für dieses Ereignis, falls zutreffend. |
| application | ApplicationEntity | ✅ | Die zugehörigen Anwendungsinformationen für dieses Ereignis, falls zutreffend. |
Siehe Benutzer und Anwendungen für detaillierte Feldbeschreibungen.
Datenmutations-Hook-Events Anfrage-Body
Standard-Anfrage-Body-Felder
| Feld | Typ | Optional | Hinweise |
|---|---|---|---|
| hookId | string | Die Kennung in Logto. | |
| event | string | Das Ereignis, das diesen Hook auslöst. | |
| createdAt | string | Das Erstellungsdatum der Nutzlast im ISO-Format. | |
| userAgent | string | ✅ | Der User-Agent für die Anfrage. |
| ip | string | ✅ | Die IP-Adresse für die Anfrage. |
Interaction-API-Kontext-Body-Felder
Datenmutations-Hook-Events, die durch Benutzer-Interaktions-API-Aufrufe ausgelöst werden.
Verfügbare Ereignisse: User.Created, User.Data.Updated
| Feld | Typ | Optional | Hinweise |
|---|---|---|---|
| interactionEvent | string | ✅ | Das Interaktionsereignis, das diesen Hook auslöst. |
| sessionId | string | ✅ | Die Session-ID (nicht Interaction-ID) für dieses Ereignis, falls zutreffend. |
| applicationId | string | ✅ | Die zugehörige Anwendungs-ID für dieses Ereignis, falls zutreffend. |
| application | ApplicationEntity | ✅ | Die zugehörigen Anwendungsinformationen für dieses Ereignis, falls zutreffend. |
Management-API-Kontext-Body-Felder
Datenmutations-Hook-Events, die durch Management API-Aufrufe ausgelöst werden.
| Feld | Typ | Optional | Hinweise |
|---|---|---|---|
| path | string | ✅ | Der Pfad des API-Aufrufs, der diesen Hook auslöst. |
| method | string | ✅ | Die Methode des API-Aufrufs, der diesen Hook auslöst. |
| status | number | ✅ | Der Antwort-Statuscode des API-Aufrufs, der diesen Hook auslöst. |
| params | object | ✅ | Die Koa-Pfad-Parameter des API-Aufrufs, der diesen Hook auslöst. |
| matchedRoute | string | ✅ | Die Koa-Matched-Route des API-Aufrufs, der diesen Hook auslöst. Logto verwendet dieses Feld, um die aktivierten Hook-Events zuzuordnen. |
Daten-Payload-Body-Felder
Benutzer-Ereignisse
| Ereignis | Feld | Typ | Optional | Hinweise |
|---|---|---|---|---|
| User.Created | data | UserEntity | Die erstellte Benutzer-Entität für dieses Ereignis. | |
| User.Data.Updated | data | UserEntity | Die aktualisierte Benutzer-Entität für dieses Ereignis. | |
| User.Deleted | data | null | / |
Rollen-Ereignisse
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;
};
| Ereignis | Feld | Typ | Optional | Hinweise |
|---|---|---|---|---|
| Role.Created | data | Rolle (Role) | Die erstellte Rollen-Entität für dieses Ereignis. | |
| Role.Data.Updated | data | Rolle (Role) | Die aktualisierte Rollen-Entität für dieses Ereignis. | |
| Role.Deleted | data | null | ||
| Role.Scope.Updated | data | Scope[] | Die aktualisierten Berechtigungen (Scopes), die der Rolle zugewiesen sind. | |
| Role.Scope.Updated | roleId | string | ✅ | Die Rollen-ID, der Berechtigungen zugewiesen sind. (Nur verfügbar, wenn das Ereignis durch das Erstellen einer neuen Rolle mit vorab zugewiesenen Berechtigungen ausgelöst wurde) |
Berechtigungs- (Scope-) Ereignisse
| Ereignis | Feld | Typ | Optional | Hinweise |
|---|---|---|---|---|
| Scope.Created | data | Scope | Die erstellte Berechtigungs-Entität für dieses Ereignis. | |
| Scope.Data.Updated | data | Scope | Die aktualisierte Berechtigungs-Entität für dieses Ereignis. | |
| Scope.Deleted | data | null | / |
Organisations-Ereignisse
type Organization = {
id: string;
name: string;
description?: string;
customData: object;
createdAt: number;
};
| Ereignis | Feld | Typ | Optional | Hinweise |
|---|---|---|---|---|
| Organization.Created | data | Organisation (Organization) | Die erstellte Organisations-Entität für dieses Ereignis. | |
| Organization.Data.Updated | data | Organisation (Organization) | Die aktualisierte Organisations-Entität für dieses Ereignis. | |
| Organization.Deleted | data | null | / | |
| Organization.Membership.Updated | data | null | / |
OrganisationRollen-Ereignisse
type OrganizationRole = {
id: string;
name: string;
description?: string;
};
type OrganizationScope = {
id: string;
name: string;
description?: string;
};
| Ereignis | Feld | Typ | Optional | Hinweise |
|---|---|---|---|---|
| OrganizationRole.Created | data | OrganizationRole | Die erstellte Organisationsrollen-Entität für dieses Ereignis. | |
| OrganizationRole.Data.Updated | data | OrganizationRole | Die aktualisierte Organisationsrollen-Entität für dieses Ereignis. | |
| OrganizationRole.Deleted | data | null | / | |
| OrganizationRole.Scope.Updated | data | null | / | |
| OrganizationRole.Scope.Updated | organizationRoleId | string | ✅ | Die Rollen-ID, der Berechtigungen zugewiesen sind. (Nur verfügbar, wenn das Ereignis durch das Erstellen einer neuen Rolle mit vorab zugewiesenen Berechtigungen ausgelöst wurde) |
Organisationsberechtigungs- (OrganizationScope-) Ereignisse
| Ereignis | Feld | Typ | Optional | Hinweise |
|---|---|---|---|---|
| OrganizationScope.Created | data | OrganizationScope | Die erstellte Organisationsberechtigungs-Entität. | |
| OrganizationScope.Data.Updated | data | OrganizationScope | Die aktualisierte Organisationsberechtigungs-Entität. | |
| OrganizationScope.Deleted | data | null | / |
Ausnahme-Hook-Events Anfrage-Body
Verfügbare Ereignisse: Identifier.Lockout
Der Anfrage-Body ist ein JSON-Objekt, das die Standard-Anfrage-Body-Felder und zusätzliche Felder wie unten enthält:
enum SignInIdentifier {
Email = 'email',
Phone = 'phone',
Username = 'username',
}
| Feld | Typ | Optional | Hinweise |
|---|---|---|---|
| hookId | string | Die Kennung in Logto. | |
| event | string | Das Ereignis, das diesen Hook auslöst. | |
| createdAt | string | Das Erstellungsdatum der Nutzlast im ISO-Format. | |
| userAgent | string | ✅ | Der User-Agent für die Anfrage. |
| ip | string | ✅ | Die IP-Adresse für die Anfrage. |
| interactionEvent | string | ✅ | Das Interaktionsereignis, das diesen Hook auslöst. |
| sessionId | string | ✅ | Die Session-ID (nicht Interaction-ID) für dieses Ereignis, falls zutreffend. |
| applicationId | string | ✅ | Die zugehörige Anwendungs-ID für dieses Ereignis, falls zutreffend. |
| application | ApplicationEntity | ✅ | Die zugehörigen Anwendungsinformationen für dieses Ereignis, falls zutreffend. |
| type | SignInIdentifier | Der Identifikatortyp des Benutzers, z. B. E-Mail, Telefon oder Benutzername. | |
| value | string | Der Identifikatorwert des Benutzers, der die Sperrung ausgelöst hat. |