Webhook bildirimleri

Webhook abonesi ekleyin

instatus.com/login adresinden Instatus'a giriş yapın ve durum sayfanızı seçin.

Aboneler'e, ardından Webhook'a gidin.

Webhook abonesi ekle'ye tıklayın,

Şunları girebileceğiniz yeni bir form açılır:

  • Webhook URL'si
  • E-posta adresi
Webhook abonesi

URL'nize bu biçimi kullanarak istekler göndeririz ve URL ile ilgili bir sorun olduğunda belirtilen e-posta adresine bir e-posta gönderilir.

Webhook abonenize, üzerine tıklayıp formda bir ad yazarak isim verebilirsiniz; ayrıca Aboneliği iptal et'e tıklayarak bu aboneyi silebilirsiniz.

Webhook yükünün doğrulanması

Webhook uç noktanızda webhook yükünü doğrulamanız kesinlikle önerilir.

Webhook yüklerini bir gizli anahtarla imzalar ve imzayı x-instatus-webhook-signature adlı bir başlıkta göndeririz. Bu imza, webhook'un Instatus'tan geldiğini doğrulamanızı sağlar.

Webhook'u doğrulama adımları

  1. Webhook Gizli Anahtarı'nızı panelden alın (bir webhook'u düzenlerken veya oluştururken bulabilir, orada özelleştirebilirsiniz de).
Webhook Gizli Anahtarı
  1. Sunucunuzda webhook'u alacak yeni bir uç nokta oluşturun.

  2. Doğrulamak için imzayı sunucunuzun ürettiği imzayla karşılaştırın.

  3. İmzalar eşleşiyorsa webhook'u işleyin.

Kod örneği

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.body
const 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 webhook
res.status(200).send('Webhook received')
})
app.listen(3000, () => console.log('Server running on port 3000'))

Doğrulama neden önemli?

  • Gerçekliği güvence altına alır: Webhook'un platformumuzdan geldiğini garanti eder.
  • Kurcalamayı önler: Yükte yapılan değişiklikleri tespit eder.
  • Güvenliği artırır: Tekrar saldırılarına ve yetkisiz erişime karşı korur.