keenauth webhooks listen ile webhook'ları yerel olarak test etme
keenauth webhooks listen, webhook alıcınızı kendi makinenizde geliştirmenize olanak tanır. Bir development veya staging ortamının olay API'sini okur ve her yeni olayı, gerçek bir webhook teslimatıyla birebir aynı şekilde imzalanmış (Standard Webhooks) olarak yerel bir URL'ye gönderir. Herkese açık bir uç nokta ya da tünel gerekmez: olaylar API üzerinden CLI'ye gelir ve CLI bunları makinenizde yönlendirir.
Kullanım
keenauth webhooks listen --forward-to http://localhost:3000/webhooks
Komut önce standart hata çıktısına bu oturum için bir imzalama sırrı yazdırır:
Signing secret for this session (shown once; not sent to KeenAuth, not stored): idp_whsec_…
Forwarding new events to http://localhost:3000/webhooks. Press Ctrl-C to stop.
Komut çalışırken alıcınızı bu sırla yapılandırın; örneğin KEENAUTH_WEBHOOK_SECRET olarak ve her teslimatı SDK'nın webhook doğrulayıcısıyla doğrulayın (bkz. Webhook'ları doğrulama). Sır, yalnızca bu oturum için makinenizde oluşturulur: asla KeenAuth'a gönderilmez, asla saklanmaz ve her çalıştırmada yeni bir sır oluşturulur. Kaydettiğiniz hiçbir webhook uç noktasının sırrı değildir.
| Bayrak | Açıklama |
|---|---|
--forward-to |
Olayları alacak yerel URL (zorunlu). localhost veya 127.0.0.1 ya da [::1] gibi döngü geri adresinde bir http veya https URL'si olmalıdır. |
--types |
Yalnızca bu olay türleri, virgülle ayrılmış veya tekrarlanmış. |
--org |
Yalnızca bu kuruluşa ait olaylar (org_…). |
--payload |
thin (varsayılan) veya full. full, kaynağı da içerir ve users:read iznini de gerektirir. |
--after |
Nereden başlanacağı: latest (varsayılan) yalnızca şimdiden sonra gerçekleşen olayları yönlendirir; keenauth events tail komutundan alınan bir imleç oradan başlatır. |
--interval |
Yeni olay yokken iki kontrol arasındaki süre, 1s ile 60s arası. Varsayılan: 5s. |
--output, -o |
Teslimat satırları için table, json veya yaml. Bayrak verilmezse CLI, terminalde tablo, aksi halde JSON yazdırır. |
Komut events:read iznini gerektirir ve bir API anahtarı ile bir keenauth login oturumu ile çalışır.
Alıcınız ne alır
Her olay, POST ile gövdede olay JSON'u olarak, olay API'sinin döndürdüğü biçimde ve şu başlıklarla gönderilir:
| Başlık | Değer |
|---|---|
webhook-id |
Olay kimliği (evt_…); gövdekiyle aynıdır. |
webhook-timestamp |
Teslimatın zamanı, Unix saniyesi cinsinden. |
webhook-signature |
Oturum sırrıyla <webhook-id>.<webhook-timestamp>.<body> üzerinden hesaplanan v1,<base64 HMAC-SHA256>. |
content-type |
application/json |
Her teslimat bir kez denenir. Komut, teslimat başına zamanı, olay türünü, olay kimliğini, alıcınızın yanıt verdiği durum kodunu (veya bağlantı hatasını) ve süreyi içeren bir satır yazdırır. Hata veren ya da çalışmayan bir alıcı komutu durdurmaz. Yönlendirmeler izlenmez.
Ortamlar
Komut yalnızca development ve staging ortamlarında çalışır. Üretim kimlik bilgisiyle hiçbir istek göndermeden durur ve 3 çıkış koduyla sonlanır:
- Bir üretim ortamı için API anahtarı (
idp_sk_live_…veyaidp_rk_live_…); - Geçerli ortamı bir üretim ortamı olan bir
keenauth loginoturumu.
Sunucu, ortam bir üretim ortamı olduğu için isteği reddederse CLI, sorun yanıtını yazdırır: code: test_feature_not_in_production; ve yine 3 çıkış koduyla sonlanır.
Çıkış kodları
| Kod | Anlamı |
|---|---|
0 |
Ctrl-C ile durduruldu. |
1 |
KeenAuth'a yönelik sunucu hatası veya ağ hatası ya da geçerli ortamın türü belirlenemedi. |
2 |
Kullanım hatası: --forward-to eksik, yerel bir URL değil ya da bir filtre veya aralık geçersiz. İstek gönderilmedi. |
3 |
Üretim kimlik bilgisi, eksik kimlik bilgisi veya sunucu 401 ya da 403 yanıtı verdi. |
4 |
Plan bu özelliği içermiyor (plan_feature_unavailable ile 403). |