SDK de servidor: el consentimiento en el backend
Lee la decisión de consentimiento en tu código de servidor y verifica los webhooks firmados.
Por qué
El banner bloquea el navegador, pero la mitad de los tratamientos salen del servidor: GA4 Measurement Protocol, sincronización con el CRM, cookies de atribución. @flowconsent/server-sdk lee la cookie first-party colocada por el banner (contrato v1, versionado) y devuelve una decisión tipada — rechazo por defecto si la cookie falta, es ilegible o está caducada.
Instalación
npm install @flowconsent/server-sdkCero dependencias, compatible con edge (Vercel, Cloudflare Workers, Node ≥ 18).
Leer la decisión
import { readConsent } from '@flowconsent/server-sdk'
const decision = readConsent(request)
if (decision.can('analytics')) {
// enviar el evento GA4 Measurement Protocol
}
// decision.reason: 'ok', 'no_cookie', 'expired', 'version_mismatch'…decision.can('google-analytics') también funciona por servicio. Pasa expectedConfigHash (el de tu banner) para invalidar automáticamente las elecciones anteriores a un cambio de configuración.
Verificar los webhooks
Los webhooks de consentimiento van firmados (HMAC-SHA256, cabecera X-FlowConsent-Signature, al estilo Stripe):
import { verifyWebhookSignature } from '@flowconsent/server-sdk'
const check = await verifyWebhookSignature(rawBody, signatureHeader, secret)
if (!check.valid) return new Response('invalid', { status: 400 })El secreto solo se muestra una vez, al crear el webhook (app o MCP configure_consent_webhook).