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.
- Podpísané požiadavky (HMAC-SHA256)
- OAuth 2: klientske prihlasovacie údaje (client credentials)
- ID kľúčov, tajné kľúče a rotácia
- 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.
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 -X POST "https://api.dubaitrip.com/v1/oauth/token" \
-d grant_type=client_credentials -d client_id=$KEY_ID -d client_secret=$SECRETID 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.