Zum Hauptinhalt springen

Sichere Webhooks

Sobald dein Server bereit ist, Webhook-Anfragen zu empfangen, möchtest du sicherstellen, dass er die Anfragen sicher verarbeiten kann. Logto generiert eine Signatur für jede Webhook-Anfrage-Payload, die es dir ermöglicht zu überprüfen, dass die Anfrage von Logto stammt.

Erhalte den Signierschlüssel

Du musst den Signierschlüssel von der Webhook-Detailseite in der Admin-Konsole abrufen, um die Signatur zu überprüfen.

Überprüfe die Signatur

Extrahiere die Signatur aus dem logto-signature-sha-256 Header der Webhook-Anfrage.

Danach solltest du eine Signatur mit deinem Signierschlüssel und dem Webhook-Anfragekörper generieren und sicherstellen, dass das Ergebnis mit der Signatur von Logto übereinstimmt.

hinweis

Verwende den rohen Körper der Webhook-Anfrage für die Signaturerstellung; vermeide die Verwendung des geparsten Körpers, da Server ihn möglicherweise vorverarbeiten, bevor er deinen Webhook-Endpunkt-Handler erreicht.

Logto verwendet einen HMAC-Hex-Digest, um die Signatur zu berechnen.

Hier ist ein Beispiel, wie man die Signatur in Node.js überprüft:

import { createHmac } from 'node:crypto';

export const verify = (signingKey: string, rawBody: Buffer[], expectedSignature: string) => {
const hmac = createHmac('sha256', signingKey);
hmac.update(rawBody);
const signature = hmac.digest('hex');
return signature === expectedSignature;
};