Pular para o conteúdo principal

Webhooks seguros

Uma vez que seu servidor esteja pronto para receber solicitações de webhook, você pode querer garantir que ele possa lidar com as solicitações de forma segura. O Logto gera uma assinatura para cada payload de solicitação de webhook, o que permite que você verifique se a solicitação vem do Logto.

Obter a chave de assinatura

Você precisará obter a chave de assinatura na página de detalhes do webhook no Console de Administração para verificar a assinatura.

Verificar a assinatura

Extraia a assinatura do cabeçalho logto-signature-sha-256 da solicitação de webhook.

Depois disso, você deve gerar uma assinatura usando sua chave de assinatura e o corpo da solicitação de webhook e garantir que o resultado corresponda à assinatura do Logto.

nota

Use o corpo bruto da solicitação de webhook para a geração da assinatura; evite usar o corpo analisado, pois os servidores podem pré-processá-lo antes de chegar ao manipulador de endpoint do webhook.

O Logto usa um digest HMAC em hexadecimal para calcular a assinatura.

Aqui está um exemplo de como verificar a assinatura em 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;
};