รับและตรวจสอบ webhook การระบุตัวตนใน Node.js และ Express เพิ่มการระบุผู้เข้าชม การตรวจจับบอต และ smart signals เข้าสู่แอปพลิเคชัน Node.js ของคุณภายในไม่กี่นาที
เพิ่ม SDK เข้าสู่โปรเจกต์ของคุณด้วย package manager ที่คุณต้องการ
npm install expressyarn add expresspnpm add expressเริ่มใช้งานได้ด้วยการตั้งค่าขั้นต่ำ
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)รูปแบบพร้อมใช้งานจริงพร้อมการจัดการข้อผิดพลาด สถานะการโหลด และการกำหนดค่าขั้นสูง
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)ตัวเลือกทั้งหมดสำหรับการเริ่มต้นและกำหนดค่า SDK
publicKeystringpublic key ของคุณจากแดชบอร์ด — ปลอดภัยที่จะส่งไปกับเบราว์เซอร์endpointstringURL endpoint ที่กำหนดเองสำหรับการติดตั้งแบบกำหนดเส้นทางผ่านพร็อกซี — URL ที่ระบุชัดจะมีผลเหนือ regionregionstringภูมิภาคข้อมูล: us หรือ eutimeoutMsnumberเวลาหมดเวลาของการเรียก getResult() ทั้งหมด เป็นมิลลิวินาทีlinkedIdstringID บัญชีภายในของคุณสำหรับผู้ใช้ที่ล็อกอินอยู่ เพื่อเชื่อมโยงการเข้าชมที่ใช้อุปกรณ์เดียวกันtagstringป้ายกำกับอิสระที่แนบไปกับคำขอระบุตัวตน เช่น checkout หรือ logindebugbooleanบันทึกวงจรชีวิตของสคริปต์และกิจกรรมเครือข่ายลงคอนโซลของเบราว์เซอร์scriptUrlstringแทนที่ URL ของสคริปต์เอเจนต์ทั้งหมด — สำหรับโฮสต์เองหรือใช้ Subresource Integrityเจาะลึกยิ่งขึ้นด้วยเอกสารอ้างอิง API ฉบับเต็ม การกำหนดค่า webhook และคู่มือขั้นสูง
เอกสารอ้างอิง API ฉบับเต็ม คู่มือการผสานรวม และแนวปฏิบัติที่ดีที่สุด
การส่งอีเวนต์แบบเรียลไทม์ สคีมาของ payload และการตรวจสอบลายเซ็น
กำหนดค่าการแจ้งเตือนอีเวนต์แบบเรียลไทม์สำหรับการระบุอุปกรณ์ทุกครั้ง
เพิ่ม device fingerprinting เข้าสู่แอปพลิเคชัน Node.js ของคุณภายในเวลาไม่ถึง 5 นาที