Empfangen und verifizieren Sie Identifikations-Webhooks in Node.js und Express. Fügen Sie Ihrer Node.js-Anwendung in Minuten Besucheridentifikation, Bot Detection und Smart Signals hinzu.
Fügen Sie das SDK mit Ihrem bevorzugten Paketmanager zu Ihrem Projekt hinzu.
npm install expressyarn add expresspnpm add expressMit dem minimalen Setup einsatzbereit werden.
import express from 'express'const app = express()// Capture the raw body so the signature can be verified byte-for-byte.app.use(express.json({ verify: (req, _res, buf) => ((req as any).rawBody = buf) }))// Identification events are pushed here in real timeapp.post('/webhook/tracio', (req, res) => { const event = req.body console.log(event.visitorId, event.bot.result) res.status(200).send('OK')})app.listen(3000)Produktionsreife Muster mit Fehlerbehandlung, Ladezuständen und erweiterter Konfiguration.
import express from 'express'import crypto from 'crypto'const app = express()app.use(express.json({ verify: (req, _res, buf) => ((req as any).rawBody = buf) }))// Recompute the HMAC-SHA256 over "<t>.<rawBody>" and compare it.function verify(rawBody: Buffer, header: string, secret: string): boolean { const p = Object.fromEntries(header.split(',').map((kv) => kv.split('=') as [string, string])) const signed = Buffer.concat([Buffer.from(`${p.t}.`), rawBody]) const expected = crypto.createHmac('sha256', secret).update(signed).digest('hex') const a = Buffer.from(p.v1, 'hex') const b = Buffer.from(expected, 'hex') return a.length === b.length && crypto.timingSafeEqual(a, b)}app.post('/webhook/tracio', (req, res) => { const sig = req.headers['x-tracio-signature'] as string if (!verify((req as any).rawBody, sig, process.env.TRACIO_WEBHOOK_SECRET!)) { return res.status(401).json({ error: 'Invalid signature' }) } const event = req.body if (event.bot.result === 'bot') { return res.status(200).json({ action: 'blocked', visitorId: event.visitorId }) } if (event.decision.riskScore > 50) { return res.status(200).json({ action: 'review', visitorId: event.visitorId }) } res.status(200).json({ action: 'allow', visitorId: event.visitorId })})app.listen(3000)Alle verfügbaren Optionen zum Initialisieren und Konfigurieren des SDK.
publicKeystringIhr öffentlicher Schlüssel aus dem Dashboard — sicher im Browser auslieferbarendpointstringIndividuelle Endpunkt-URL für Proxy-geroutete Deployments — eine explizite URL hat Vorrang vor regionregionstringDatenregion: us oder eutimeoutMsnumberTimeout für den gesamten getResult()-Aufruf, in MillisekundenlinkedIdstringIhre interne Konto-ID für den angemeldeten Nutzer, damit Besuche auf demselben Gerät verknüpft werden könnentagstringFrei wählbares Label für die Identifikationsanfrage, z. B. checkout oder logindebugbooleanProtokolliert Script-Lebenszyklus und Netzwerkaktivität in der Browser-KonsolescriptUrlstringVollständige Überschreibung der Agent-Script-URL — für Self-Hosting oder Subresource IntegrityVertiefen Sie sich mit der vollständigen API-Referenz, der Webhook-Konfiguration und fortgeschrittenen Leitfäden.
Vollständige API-Referenz, Integrationsleitfäden und Best Practices.
Echtzeit-Ereigniszustellung, Payload-Schema und Signaturprüfung.
Konfigurieren Sie Echtzeit-Ereignisbenachrichtigungen für jede Geräteidentifikation.
Fügen Sie Ihrer Node.js-Anwendung in unter 5 Minuten Device-Fingerprinting hinzu.