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.
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;
};