Przejdź do głównej zawartości

Weryfikacja zgody po stronie serwera

Użyj tego podejścia, gdy musisz potwierdzić zgodę przed operacjami po stronie serwera, takimi jak wysyłanie e-maili, eksporty danych lub pipeline'y analityczne.

Kiedy weryfikować po stronie serwera

  • Dodawanie użytkownika do marketingowej listy e-mailowej
  • Przechowywanie danych behawioralnych w hurtowni danych
  • Przekazywanie danych do API strony trzeciej (CRM, platforma reklamowa)
  • Renderowanie spersonalizowanej treści po stronie serwera

Krok 1: Pobierz token API

Konto → Klucze API → Utwórz klucz z zakresem receipts:read.

Krok 2: Zbuduj identyfikator użytkownika

Identyfikator musi być zgodny z tym, czego używa środowisko uruchomieniowe ConsentForge w przeglądarce. Środowisko uruchomieniowe haszuje: {ip}|{userAgent}|{propertyId}|{date} za pomocą SHA-256.

const crypto = require('crypto');

function buildUserId(ip, userAgent, propertyId) {
const date = new Date().toISOString().split('T')[0]; // RRRR-MM-DD
const raw = `${ip}|${userAgent}|${propertyId}|${date}`;
return crypto.createHash('sha256').update(raw).digest('hex');
}

Krok 3: Sprawdź zgodę

async function hasConsent(ip, userAgent, propertyId, category) {
const userId = buildUserId(ip, userAgent, propertyId);

const res = await fetch(
`https://api.consentforge.com/api/v1/consent/check?property_id=${propertyId}&user_id=${userId}&category=${category}`,
{ headers: { Authorization: `Bearer ${process.env.CONSENTFORGE_API_KEY}` } }
);

if (!res.ok) return false;
const { has_consent } = await res.json();
return has_consent;
}

// Użycie:
const canEmail = await hasConsent(req.ip, req.headers['user-agent'], 'prop_abc', 'marketing');
if (canEmail) {
await addToEmailList(user.email);
}

Buforowanie

Buforuj wyniki sprawdzania zgody przez maksymalnie 5 minut, aby uniknąć nadmiernych wywołań API na endpointach o dużym ruchu. Zmiany zgody są rzadkie w ramach jednej sesji.

Zobacz też: Weryfikacja po stronie serwera