استقبال webhooks التعريف والتحقق منها في Node.js وExpress. أضف التعرّف على الزوار، وكشف الروبوتات، والإشارات الذكية إلى تطبيق Node.js الخاص بك في دقائق.
أضف SDK إلى مشروعك باستخدام مدير الحزم المفضّل لديك.
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 وإعداده.
publicKeystringمفتاحك العام من لوحة المعلومات — آمن لإرساله في المتصفحendpointstringعنوان URL مخصص لنقطة النهاية لعمليات النشر الموجَّهة عبر بروكسي — العنوان الصريح يتقدّم على regionregionstringمنطقة البيانات: us أو eutimeoutMsnumberمهلة استدعاء getResult() بأكمله، بالمللي ثانيةlinkedIdstringمعرّف الحساب الداخلي لديك للمستخدم المسجَّل دخوله، كي تُربط الزيارات التي تتشارك جهازًاtagstringتسمية حرة تُرفق بطلب التعريف، مثل checkout أو logindebugbooleanيسجّل دورة حياة النص البرمجي ونشاط الشبكة في وحدة تحكّم المتصفحscriptUrlstringتجاوز كامل لعنوان URL لنص الوكيل — للاستضافة الذاتية أو Subresource Integrityتعمّق أكثر مع مرجع API الكامل، وإعداد webhook، والأدلة المتقدمة.
مرجع API الكامل، وأدلة التكامل، وأفضل الممارسات.
تسليم الأحداث في الوقت الفعلي، ومخطط الحمولة، والتحقق من التوقيع.
أعدّ إشعارات الأحداث في الوقت الفعلي لكل عملية تعرّف على جهاز.
أضف بصمات الأجهزة إلى تطبيق Node.js الخاص بك في أقل من 5 دقائق.