Aura Logo
aurabasedocumentos
documentos›Guias›Webhooks e HMAC

Webhooks de saída e assinaturas HMAC

Receba eventos em tempo real do seu projeto Aurabase em seus próprios servidores com segurança usando assinaturas criptográficas HMAC-SHA256.

8 min lido·Nível intermediário·Revisado em 19 de ago. de 2026
Este texto em inglês foi gerado automaticamente a partir do original em francês e ainda não foi revisado.
Esta página foi traduzida automaticamente. A versão em inglês é oficial.
#
Operação

Arquitetura de webhooks

Os webhooks de saída do Aurabase transmitem eventos do sistema para seus URLs de retorno de chamada (por exemplo, registro de novo usuário, pagamento bem-sucedido, atualização de linha da tabela).

Garantia de entrega pelo menos uma vez

Cada webhook enviado contém um identificador de evento exclusivo event_id, permitindo implementar processamento idempotente em seus servidores.

#
Segurança

Estrutura do cabeçalho X-Aurabase-Signature

Cada solicitação HTTP POST emitida pelo Aurabase inclui o seguinte cabeçalho de segurança:

http-headerstext
POST /webhook HTTP/1.1
Host: api.votre-domaine.com
Content-Type: application/json
X-Aurabase-Event-Id: evt_01J8Y6Q9K3M7Z...
X-Aurabase-Signature: t=1724060000,v1=9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
#
Validação

Verifique a assinatura HMAC-SHA256

verify-webhook.tstypescript
import crypto from 'node:crypto'
export function verifyAurabaseWebhook(
  rawBody: string, signatureHeader: string, secret: string)
  const parts = Object.fromEntries(
    signatureHeader.split(',').map(p => p.split('=')),
  )
  const { t: timestamp, v1: signature } = parts

  // 1. Proteção contra ataques de repetição (5 min no máximo)
  if (Math.abs(Date.now() / 1000 - Number(timestamp)) > 300) {
    return false
  }

  // 2. Cálculo de HMAC-SHA256 em timestamp.rawBody
  const expected = crypto
    .createHmac('sha256', secret)
    .update(timestamp + '.' + rawBody)
    .digest('hex')

  // 3. Comparação segura em tempo constante
  return crypto.timingSafeEqual(
    Buffer.from(signature), Buffer.from(expected)
  )
}
#
Resiliência

Gerenciamento de falhas e fila de mensagens mortas

Se o seu servidor responder com um código de erro HTTP (4xx, 5xx) ou atingir um tempo limite (limite de tempo de 10 segundos), o Aurabase tentará automaticamente o envio de acordo com um backoff exponencial :

  • Tentativa 1: Imediata
  • Tentativa 2: após 15 segundos
  • Tentativa 3: após 1 minuto
  • Tentativa 4: após 5 minutos
  • Tentativa 5: após 30 minutos

Após 5 falhas consecutivas, o evento é colocado na Dead-Letter Queue (DLQ) do Studio para inspeção e reprodução manual.

Última atualização · 19 de ago. de 2026