Skip to main content
Miscord подписывает исходное тело HTTP-запроса Ed25519. Public key доступен в настройках приложения. В каждом запросе присутствуют:
  • X-Signature-Ed25519 — подпись в hex;
  • X-Signature-Timestamp — Unix timestamp;
  • исходное JSON-тело запроса.
Строка для проверки подписи формируется как timestamp + raw_body.

Node.js

Python

Обязательные проверки

1

Получите сырое тело

Не сериализуйте JSON повторно перед проверкой: даже другое форматирование изменит подпись.
2

Проверьте заголовки

Отклоните запрос без подписи или timestamp.
3

Ограничьте возраст запроса

Сравните timestamp с текущим временем, чтобы снизить риск повторного воспроизведения запроса.
4

Проверьте Ed25519

Используйте public key именно того приложения, чей application_id указан в payload.
5

Обработайте событие идемпотентно

Повторная доставка не должна создавать дубликаты или повторно выполнять необратимые операции.
Сначала проверяйте подпись исходных байтов, и только затем разбирайте JSON и выполняйте бизнес-логику.