Přeskočit na obsah

Ověřování

Dva způsoby ověření, oba vázané na ID vašeho klíče: podepsané požadavky (doporučeno) nebo tokeny Bearer z OAuth 2 client credentials.

  1. Podepsané požadavky (HMAC-SHA256)
  2. OAuth 2 – přihlašovací údaje klienta
  3. ID klíčů, tajné klíče a obměna
  4. Seznam povolených IP adres

Podepsané požadavky (HMAC-SHA256)

U každého volání posílejte X-API-Key, X-Timestamp, X-Nonce a X-Signature. Podpis pokrývá metodu, přesný cíl požadavku (cestu a dotaz), časové razítko, nonce a hash těla, takže přehraný nebo pozměněný požadavek ověřením neprojde. Tolerujeme odchylku hodin až pět minut; opětovné použití nonce do deseti minut je odmítnuto s 401 api_nonce_reused.

Podpis počítejte ze surových bajtů, které skutečně odesíláte. JSON serializujte jednou, zahashujte přesně tyto bajty a stejné bajty pošlete jako tělo — opětovná serializace po podepsání je nejčastější příčinou api_signature_invalid.

Node.js
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 – přihlašovací údaje klienta

Pokud podepisování každého požadavku nezapadá do vašeho stacku, vyměňte ID klíče a tajný klíč za krátkodobý token Bearer na POST /v1/oauth/token (grant_type=client_credentials, kódováno jako formulář). Tokeny platí 30 minut a nesou vám udělená oprávnění; parametrem scope si můžete vyžádat jejich podmnožinu.

Token posílejte u každého volání jako Authorization: Bearer spolu s X-API-Key. ID klíče se kontroluje u každého požadavku, takže odvolání klíče okamžitě zneplatní i jeho tokeny.

cURL
curl -X POST "https://api.dubaitrip.com/v1/oauth/token" \
  -d grant_type=client_credentials -d client_id=$KEY_ID -d client_secret=$SECRET

ID klíčů, tajné klíče a obměna

Klíče do testovacího prostředí začínají dt_sbx_, produkční klíče dt_live_. Klíč patří k jednomu prostředí a jednomu partnerovi. Tajné klíče se zobrazí jednou — při vytvoření, při obměně a přes odkaz k zobrazení — a u nás se ukládají jako hash.

Obměnu provedete ve vývojářském portálu: vydá se nové ID klíče a tajný klíč, zatímco starý klíč funguje dál po zvolené přechodné období (až sedm dní), takže můžete přejít bez výpadku. Odvolání je okamžité.

Seznam povolených IP adres

Volitelně můžete ve vývojářském portálu omezit každé prostředí na sadu adres IPv4/IPv6 nebo rozsahů CIDR. Požadavky z jiných adres jsou odmítnuty s 403 api_ip_not_allowed, i když jsou správně podepsané. Chcete-li přijímat jakýkoli původ, ponechte seznam prázdný.