İstek imzası. Sunucudan gelenin sunucunuzdan geldiğini kanıtlayın.
Sunucu kaynakları her isteği imza anahtarıyla (sk_…) imzalar. Kaynakta İmza zorunlu açıksa imzasız ya da hatalı imzalı istek reddedilir; böylece yazma anahtarını ele geçiren biri sunucunuz adına olay gönderemez.
Başlık ve hesaplama
İmza Metrics-Signature: t=<unix saniye>,v1=<hex> başlığıyla gider. v1 = hex(HMAC-SHA256(imzaAnahtarı, t + "." + hamGövde)): imza gönderilen baytların tam kendisi üzerinden hesaplanır.
Node.js, bağımlılıksız · JavaScript
import { createHmac } from 'node:crypto';
const body = JSON.stringify({ userId: 'usr_7c1e', event: 'signup_completed', messageId: 'signup:7c1e' });
const t = Math.floor(Date.now() / 1000);
const v1 = createHmac('sha256', process.env.METRICS_SIGNING_SECRET).update(`${t}.${body}`).digest('hex');
await fetch('https://collect.<alan>/v1/track', {
method: 'POST',
headers: {
authorization: `Basic ${Buffer.from(`${process.env.METRICS_WRITE_KEY}:`).toString('base64')}`,
'content-type': 'application/json',
'metrics-signature': `t=${t},v1=${v1}`,
},
body,
});Kurallar
tsunucu saatinden ±300 sn dışındaysa istek401 signature_expiredalır; sunucunuzun saatini NTP ile eşitleyin.- Anahtar yenilenirken başlık birden çok
v1=değeri taşıyabilir; biri geçerliyse istek kabul edilir. - İmza zorunlu kaynakta imzasız istek
401 signature_required, yanlış imza401 signature_invalidalır. - Segment istemcileri imza atamaz: imza zorunlu kaynaklarda Postlip Metrics SDK’sını kullanın.
POST /v1/pinggövdesi{}ile imzalanır ve imzanın durumunu (validya daabsent) döner; hiçbir şey kaydetmez.