Логотип Аурабаза
аурабазадокументы
документы›Путеводители›Вебхуки и HMAC

Исходящие вебхуки и подписи HMAC

Получайте события в реальном времени из вашего проекта Aurabase на своих серверах безопасно, используя криптографические подписи HMAC-SHA256.

8 мин читать·Уровень средний·Пересмотрено 19 авг. 2026 г.
Этот текст на английском языке был создан автоматически на основе французского оригинала и еще не проверялся.
Эта страница была переведена автоматически. Английская версия является авторитетной.
#
Операция

Архитектура вебхуков

Исходящие веб-перехватчики Aurabase транслируют системные события на ваши URL-адреса обратного вызова (например, регистрация нового пользователя, успешный платеж, обновление строки таблицы).

Гарантия доставки хотя бы один раз

Каждый отправленный вебхук содержит уникальный идентификатор события event_id, позволяющий реализовать идемпотентную обработку на ваших серверах.

#
Безопасность

Структура заголовка X-Aurabase-Signature

Каждый HTTP-запрос POST, выдаваемый Aurabase, включает следующий заголовок безопасности:

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
#
Валидация

Проверьте подпись 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. Защита от повторных атак (максимум 5 минут)
  if (Math.abs(Date.now() / 1000 - Number(timestamp)) > 300) {
    return false
  }

  // 2. Расчет HMAC-SHA256 по timestamp.rawBody
  const expected = crypto
    .createHmac('sha256', secret)
    .update(timestamp + '.' + rawBody)
    .digest('hex')

  // 3. Безопасное сравнение в постоянное время
  return crypto.timingSafeEqual(
    Buffer.from(signature), Buffer.from(expected)
  )
}
#
Устойчивость

Управление сбоями и очередь недоставленных писем

Если ваш сервер отвечает кодом ошибки HTTP (4xx, 5xx) или испытывает тайм-аут (ограничение по времени 10 секунд), Aurabase автоматически повторяет отправку в соответствии с экспоненциальной отсрочкой :

  • Попытка 1: Немедленная
  • Попытка 2: Через 15 секунд.
  • Попытка 3: Через 1 минуту
  • Попытка 4: Через 5 минут
  • Попытка 5: Через 30 минут.

После 5 последовательных сбоев событие помещается в очередь недоставленных писем студии (DLQ) для проверки и воспроизведения вручную.

Последнее обновление · 19 авг. 2026 г.