Preskočiť na obsah

Overovanie

Dva spôsoby overenia, oba viazané na ID vášho kľúča: podpísané požiadavky (odporúčané) alebo bearer tokeny OAuth 2 client credentials.

  1. Podpísané požiadavky (HMAC-SHA256)
  2. OAuth 2: klientske prihlasovacie údaje (client credentials)
  3. ID kľúčov, tajné kľúče a rotácia
  4. Zoznam povolených IP

Podpísané požiadavky (HMAC-SHA256)

Pri každom volaní posielajte X-API-Key, X-Timestamp, X-Nonce a X-Signature. Podpis pokrýva metódu, presný cieľ požiadavky (cestu a query), časovú pečiatku, nonce a hash tela, takže zopakovaná alebo zmenená požiadavka overením neprejde. Tolerujeme odchýlku hodín do piatich minút; opätovné použitie nonce v priebehu desiatich minút sa odmietne s 401 api_nonce_reused.

Podpis počítajte zo surových bajtov, ktoré skutočne odosielate. JSON serializujte raz, hashujte presne tieto bajty a tie isté bajty pošlite ako telo — opätovná serializácia po podpísaní je najčastejšou príč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: klientske prihlasovacie údaje (client credentials)

Ak podpisovanie každej požiadavky nezapadá do vášho stacku, vymeňte ID kľúča a tajný kľúč za krátkodobý bearer token cez POST /v1/oauth/token (grant_type=client_credentials, form-encoded). Tokeny platia 30 minút a nesú vám pridelené rozsahy; parametrom scope môžete požiadať o ich podmnožinu.

Token posielajte ako Authorization: Bearer spolu s X-API-Key pri každom volaní. ID kľúča sa kontroluje pri každej požiadavke, takže odvolanie kľúča okamžite zneplatní aj 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 kľúčov, tajné kľúče a rotácia

Kľúče do sandboxu začínajú na dt_sbx_, produkčné kľúče na dt_live_. Kľúč patrí jednému prostrediu a jednému partnerovi. Tajné kľúče sa zobrazia raz — pri vytvorení, pri rotácii a cez odkaz na odhalenie — a u nás sa ukladajú iba ako hash.

Rotujte v portáli pre vývojárov: vydá sa nové ID kľúča a tajný kľúč, pričom starý kľúč funguje počas prechodného obdobia, ktoré si zvolíte (až sedem dní), takže prejdete bez výpadku. Odvolanie platí okamžite.

Zoznam povolených IP

Voliteľne môžete v portáli pre vývojárov obmedziť každé prostredie na súbor adries IPv4/IPv6 alebo rozsahov CIDR. Požiadavky z akejkoľvek inej adresy sa odmietnu s 403 api_ip_not_allowed, aj keď sú správne podpísané. Ak necháte zoznam prázdny, prijme sa akýkoľvek zdroj.