Autentifikasiya
Autentifikasiyanın iki üsulu var, hər ikisi açar ID-nizə bağlıdır: imzalanmış sorğular (tövsiyə olunur) və ya OAuth 2 client-credentials bearer tokenləri.
- İmzalanmış sorğular (HMAC-SHA256)
- OAuth 2 client credentials
- Açar ID-ləri, gizli açarlar və dəyişdirmə
- IP icazə siyahısı
İmzalanmış sorğular (HMAC-SHA256)
Hər çağırışda X-API-Key, X-Timestamp, X-Nonce və X-Signature göndərin. İmza metodu, dəqiq sorğu hədəfini (yol və sorğu sətri), timestamp-i, nonce-u və gövdənin hash-ini əhatə edir, buna görə təkrarlanmış və ya dəyişdirilmiş sorğu yoxlamadan keçmir. Beş dəqiqəyə qədər saat fərqinə yol verilir; nonce-un on dəqiqə ərzində təkrar istifadəsi 401 api_nonce_reused ilə rədd edilir.
İmzanı şəbəkəyə göndərdiyiniz xam baytlar üzərində hesablayın. JSON-u bir dəfə seriallaşdırın, məhz həmin baytların hash-ini hesablayın və gövdə kimi eyni baytları göndərin — imzalamadan sonra yenidən seriallaşdırma api_signature_invalid xətasının ən çox rast gəlinən səbəbidir.
const payload = JSON.stringify(body);
const ts = Math.floor(Date.now() / 1000);
const nonce = randomBytes(16).toString("hex");
const bodyHash = createHash("sha256").update(payload).digest("hex");
const canonical = ["POST", "/v1/flights/search", ts, nonce, bodyHash].join("\n");
const signature = createHmac("sha256", SECRET).update(canonical).digest("hex");OAuth 2 client credentials
Hər sorğunu imzalamaq texnologiya yığınınıza uyğun deyilsə, açar ID-nizi və gizli açarınızı POST /v1/oauth/token ünvanında (grant_type=client_credentials, form-encoded) qısamüddətli bearer tokenə dəyişin. Tokenlər 30 dəqiqə yaşayır və sizə verilmiş skopları daşıyır; scope parametri ilə onların alt dəstini tələb edə bilərsiniz.
Tokeni hər çağırışda X-API-Key ilə birlikdə Authorization: Bearer kimi göndərin. Açar ID-si hər sorğuda yenidən yoxlanılır, buna görə açarın geri çağırılması onun tokenlərini dərhal etibarsız edir.
curl -X POST "https://api.dubaitrip.com/v1/oauth/token" \
-d grant_type=client_credentials -d client_id=$KEY_ID -d client_secret=$SECRETAçar ID-ləri, gizli açarlar və dəyişdirmə
Sandbox açarları dt_sbx_ ilə, production açarları isə dt_live_ ilə başlayır. Açar bir mühitə və bir tərəfdaşa aiddir. Gizli açarlar bir dəfə göstərilir — yaradılma, dəyişdirilmə zamanı və göstərmə linki vasitəsilə — və bizim tərəfdə hash şəklində saxlanılır.
Tərtibatçı portalından dəyişdirin: yeni açar ID-si və gizli açar verilir, köhnə açar isə seçdiyiniz güzəşt müddəti ərzində (yeddi günə qədər) işləməyə davam edir, beləliklə fasiləsiz keçid edə bilərsiniz. Geri çağırma dərhal qüvvəyə minir.
IP icazə siyahısı
İstəyə bağlı olaraq, tərtibatçı portalında hər mühiti IPv4/IPv6 ünvanları və ya CIDR diapazonları dəstinə bağlayın. Başqa istənilən ünvandan gələn sorğular düzgün imzalansa belə 403 api_ip_not_allowed ilə rədd edilir. İstənilən mənbəni qəbul etmək üçün siyahını boş saxlayın.