SDK serveur : le consentement côté backend
Lire la décision de consentement dans votre code serveur et vérifier les webhooks signés.
Pourquoi
La bannière bloque le navigateur, mais la moitié des traitements partent du serveur : GA4 Measurement Protocol, synchronisation CRM, cookies d'attribution. @flowconsent/server-sdk lit le cookie first-party posé par la bannière (contrat v1, versionné) et rend une décision typée — refus par défaut si le cookie est absent, illisible ou périmé.
Installation
npm install @flowconsent/server-sdkZéro dépendance, compatible edge (Vercel, Cloudflare Workers, Node ≥ 18).
Lire la décision
import { readConsent } from '@flowconsent/server-sdk'
const decision = readConsent(request)
if (decision.can('analytics')) {
// envoyer l'événement GA4 Measurement Protocol
}
// decision.reason : 'ok', 'no_cookie', 'expired', 'version_mismatch'…decision.can('google-analytics') fonctionne aussi par service. Passez expectedConfigHash (celui de votre bannière) pour invalider automatiquement les choix antérieurs à un changement de configuration.
Vérifier les webhooks
Les webhooks de consentement sont signés (HMAC-SHA256, en-tête X-FlowConsent-Signature, style Stripe) :
import { verifyWebhookSignature } from '@flowconsent/server-sdk'
const check = await verifyWebhookSignature(rawBody, signatureHeader, secret)
if (!check.valid) return new Response('invalid', { status: 400 })Le secret n'est montré qu'une fois, à la création du webhook (app ou MCP configure_consent_webhook).