Riceve e verifica i webhook di identificazione in Node.js ed Express. Aggiunga identificazione dei visitatori, bot detection e smart signals alla sua applicazione Node.js in pochi minuti.
Aggiunga l'SDK al suo progetto con il gestore di pacchetti che preferisce.
npm install expressyarn add expresspnpm add expressDiventi operativo con la configurazione minima.
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)Pattern pronti per la produzione con gestione degli errori, stati di caricamento e configurazione avanzata.
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)Tutte le opzioni disponibili per inizializzare e configurare l'SDK.
publicKeystringLa sua chiave pubblica dalla dashboard — può essere distribuita nel browser in sicurezzaendpointstringURL endpoint personalizzato per i deployment instradati tramite proxy — un URL esplicito prevale su regionregionstringRegione dati: us o eutimeoutMsnumberTimeout dell'intera chiamata getResult(), in millisecondilinkedIdstringIl suo ID account interno per l'utente autenticato, così le visite che condividono un dispositivo possono essere collegatetagstringEtichetta libera associata alla richiesta di identificazione, es. checkout o logindebugbooleanRegistra il ciclo di vita dello script e l'attività di rete nella console del browserscriptUrlstringOverride completo dell'URL dello script agent — per self-hosting o Subresource IntegrityApprofondisca con il riferimento API completo, la configurazione dei webhook e le guide avanzate.
Riferimento API completo, guide all'integrazione e best practice.
Recapito degli eventi in tempo reale, schema del payload e verifica della firma.
Configuri notifiche di eventi in tempo reale per ogni identificazione del dispositivo.
Aggiunga il fingerprinting del dispositivo alla sua applicazione Node.js in meno di 5 minuti.