Asegurar webhooks
Una vez que tu servidor esté listo para recibir solicitudes de webhook, es posible que desees asegurarte de que pueda manejar las solicitudes de manera segura. Logto genera una firma para cada carga útil de solicitud de webhook, lo que te permite verificar que la solicitud proviene de Logto.
Obtener la clave de firma
Necesitarás obtener la clave de firma desde la página de detalles del webhook en Logto Console > Webhooks para verificar la firma.
Verificar la firma
Extrae la firma del encabezado logto-signature-sha-256
de la solicitud de webhook.
Después de eso, debes generar una firma usando tu clave de firma y el cuerpo de la solicitud de webhook y asegurarte de que el resultado coincida con la firma de Logto.
Usa el cuerpo sin procesar de la solicitud de webhook para la generación de la firma; evita usar el cuerpo analizado, ya que los servidores pueden preprocesarlo antes de llegar a tu manejador de endpoint de webhook.
Logto utiliza un resumen HMAC en formato hexadecimal para calcular la firma.
Aquí tienes un ejemplo de cómo verificar la firma en Node.js:
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;
};