Terima dan verifikasi webhook identifikasi di Node.js dan Express. Tambahkan identifikasi pengunjung, deteksi bot, dan smart signals ke aplikasi Node.js Anda dalam hitungan menit.
Tambahkan SDK ke proyek Anda dengan package manager pilihan Anda.
npm install expressyarn add expresspnpm add expressSiap dan berjalan dengan penyiapan minimal.
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)Pola siap produksi dengan penanganan error, status loading, dan konfigurasi lanjutan.
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)Semua opsi yang tersedia untuk menginisialisasi dan mengonfigurasi SDK.
publicKeystringKunci publik Anda dari dasbor — aman dikirim di browserendpointstringURL endpoint khusus untuk deployment yang dirutekan melalui proxy — URL eksplisit mengalahkan regionregionstringRegion data: us atau eutimeoutMsnumberBatas waktu untuk seluruh panggilan getResult(), dalam milidetiklinkedIdstringID akun internal Anda untuk pengguna yang masuk, agar kunjungan yang berbagi perangkat bisa ditautkantagstringLabel bebas yang dilekatkan pada permintaan identifikasi, mis. checkout atau logindebugbooleanMencatat siklus hidup skrip dan aktivitas jaringan ke konsol browserscriptUrlstringPenimpaan penuh untuk URL skrip agent — untuk self-hosting atau Subresource IntegrityPelajari lebih dalam dengan referensi API lengkap, konfigurasi webhook, dan panduan lanjutan.
Referensi API lengkap, panduan integrasi, dan praktik terbaik.
Pengiriman event real-time, skema payload, dan verifikasi tanda tangan.
Konfigurasikan notifikasi event real-time untuk setiap identifikasi perangkat.
Tambahkan device fingerprinting ke aplikasi Node.js Anda dalam kurang dari 5 menit.