התראות Webhook
הוספת מנוי webhook
התחברו ל‑Instatus מinstatus.com/login ובחרו את דף הסטטוס שלכם.
עברו אל מנויים ואז אל Webhook.
לחצו על הוספת מנוי webhook,
יופיע טופס חדש שבו אפשר להזין:
- כתובת Webhook
- כתובת אימייל

אנחנו נשלח בקשות לכתובת שלכם לפי הפורמט הזה, ואימייל יישלח לכתובת האימייל שציינתם כשתהיה תקלה עם הכתובת.
אפשר לתת שם למנוי ה‑webhook שלכם על ידי לחיצה עליו והקלדת שם בטופס. אפשר גם למחוק את המנוי הזה בלחיצה על ביטול מנוי.
אימות מטען ה‑Webhook
מומלץ מאוד לאמת את מטען ה‑webhook בנקודת הקצה שלכם.
אנחנו חותמים על מטעני webhook עם סוד וכוללים את החתימה בכותרת בשם x-instatus-webhook-signature. החתימה הזו מאפשרת לכם לאמת שה‑webhook הגיע מ‑Instatus.
שלבים לאימות ה‑Webhook
- שלפו את סוד ה‑Webhook שלכם מהדאשבורד (אפשר למצוא אותו בעת עריכה או יצירה של webhook, ואפשר גם להתאים אותו שם).

-
צרו נקודת קצה חדשה בשרת שלכם שתקבל את ה‑webhook.
-
השוו את החתימה לחתימה שנוצרה בשרת שלכם כדי לאמת.
-
אם החתימות תואמות, עבדו את ה‑webhook.
דוגמת קוד
import crypto from 'crypto'import express from 'express'const app = express()app.use(express.json())const WEBHOOK_SECRET = 'your-webhook-secret'function isVerifiedPayload(payload, signature, secret) {const hmac = crypto.createHmac('sha256', secret)const digest = hmac.update(JSON.stringify(payload)).digest('hex')return crypto.timingSafeEqual(Buffer.from(digest), Buffer.from(signature))}app.post('/endpoint/to/webhook', (req, res) => {const payload = req.bodyconst signature = req.header('x-instatus-webhook-signature')if (!signature) {return res.status(400).send('Signature missing')}if (!isVerifiedPayload(payload, signature, WEBHOOK_SECRET)) {return res.status(401).send('Invalid signature')}// Process the valid webhookres.status(200).send('Webhook received')})app.listen(3000, () => console.log('Server running on port 3000'))
למה האימות חשוב
- מבטיח מקוריות: מוודא שה‑webhook מגיע מהפלטפורמה שלנו.
- מונע שינויים: מזהה שינויים במטען.
- משפר אבטחה: מגן מפני התקפות שחזור וגישה לא מורשית.