Logo Aurabase
aurabazadokumenty
dokumenty›Przewodniki›Webhooki i HMAC

Wychodzące webhooki i podpisy HMAC

Otrzymuj bezpiecznie zdarzenia w czasie rzeczywistym z projektu Aurabase na własnych serwerach, korzystając z podpisów kryptograficznych HMAC-SHA256.

8 min przeczytane·Poziom mediator·Zmieniono 19 sie 2026
Ten tekst w języku angielskim został wygenerowany automatycznie na podstawie francuskiego oryginału i nie był jeszcze recenzowany.
Ta strona została przetłumaczona automatycznie. Wersja angielska jest miarodajna.
#
Działanie

Architektura webhooków

Wychodzące webhooki Aurabase transmitują zdarzenia systemowe do adresów URL wywołania zwrotnego (np. rejestracja nowego użytkownika, pomyślna płatność, aktualizacja wiersza tabeli).

Gwarancja dostawy przynajmniej raz

Każdy wysłany webhook zawiera unikalny identyfikator zdarzenia event_id, który umożliwia wdrożenie idempotentnego przetwarzania na Twoich serwerach.

#
Bezpieczeństwo

Struktura nagłówka X-Aurabase-Signature

Każde żądanie HTTP POST wysłane przez Aurabase zawiera następujący nagłówek bezpieczeństwa:

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
#
Walidacja

Zweryfikuj podpis 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. Ochrona przed atakami polegającymi na powtórzeniu (maks. 5 min)
  if (Math.abs(Date.now() / 1000 - Number(timestamp)) > 300) {
    return false
  }

  // 2. Obliczenie HMAC-SHA256 na timestamp.rawBody
  const expected = crypto
    .createHmac('sha256', secret)
    .update(timestamp + '.' + rawBody)
    .digest('hex')

  // 3. Bezpieczne porównanie w stałym czasie
  return crypto.timingSafeEqual(
    Buffer.from(signature), Buffer.from(expected)
  )
}
#
Odporność

Zarządzanie błędami i kolejka utraconych wiadomości

Jeśli Twój serwer odpowie kodem błędu HTTP (4xx, 5xx) lub doświadczy przekroczenia limitu czasu (limit czasu 10 sekund), Aurabase automatycznie ponawia próbę wysyłania zgodnie z wykładniczym opóźnieniem :

  • Próba 1: natychmiastowa
  • Próba 2: Po 15 sekundach
  • Próba 3: Po 1 minucie
  • Próba 4: Po 5 minutach
  • Próba 5: Po 30 minutach

Po 5 kolejnych niepowodzeniach zdarzenie jest umieszczane w Kolejce utraconych wiadomości (DLQ) w Studio w celu sprawdzenia i ręcznego odtworzenia.

Ostatnia aktualizacja · 19 sie 2026