Ruka hadi maudhui

Uthibitishaji

Njia mbili za uthibitishaji, zote zikiwa zimefungamanishwa na kitambulisho cha ufunguo wako: maombi yaliyotiwa sahihi (inapendekezwa) au tokeni za bearer za OAuth 2 client-credentials.

  1. Maombi yaliyotiwa sahihi (HMAC-SHA256)
  2. OAuth 2 client credentials (vitambulisho vya mteja)
  3. Vitambulisho vya funguo, siri na ubadilishaji
  4. Orodha ya IP zinazoruhusiwa

Maombi yaliyotiwa sahihi (HMAC-SHA256)

Tuma X-API-Key, X-Timestamp, X-Nonce na X-Signature kwenye kila mwito. Sahihi inajumuisha mbinu, lengo halisi la ombi (njia na hoja), muhuri wa muda, nonce na hashi ya mwili, kwa hiyo ombi lililorudiwa au kubadilishwa hushindwa uthibitishaji. Tofauti ya saa ya hadi dakika tano inavumiliwa; kutumia nonce tena ndani ya dakika kumi kunakataliwa kwa 401 api_nonce_reused.

Kokotoa sahihi juu ya baiti ghafi unazotuma mtandaoni. Geuza JSON yako kuwa mfuatano mara moja, pata hashi ya baiti hizo hasa, na utume baiti hizo hizo kama mwili — kugeuza upya baada ya kutia sahihi ndicho chanzo kikuu cha 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 client credentials (vitambulisho vya mteja)

Ikiwa kutia sahihi kila ombi hakuendani na mfumo wako, badilisha kitambulisho cha ufunguo na siri yako kupata tokeni ya bearer ya muda mfupi kupitia POST /v1/oauth/token (grant_type=client_credentials, form-encoded). Tokeni hudumu dakika 30 na hubeba wigo uliopewa; unaweza kuomba sehemu yake kwa kigezo cha scope.

Tuma tokeni kama Authorization: Bearer pamoja na X-API-Key kwenye kila mwito. Kitambulisho cha ufunguo hukaguliwa upya kwa kila ombi, kwa hiyo kubatilisha ufunguo hubatilisha tokeni zake mara moja.

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

Vitambulisho vya funguo, siri na ubadilishaji

Funguo za sandbox huanza na dt_sbx_, funguo za uzalishaji na dt_live_. Ufunguo ni wa mazingira moja na mshirika mmoja. Siri huonyeshwa mara moja — wakati wa kuunda, wakati wa kubadilisha na kupitia kiungo cha kufichua — na huhifadhiwa kama hashi upande wetu.

Badilisha ufunguo kutoka kwenye lango la wasanidi programu: kitambulisho kipya cha ufunguo na siri mpya vinatolewa huku ufunguo wa zamani ukiendelea kufanya kazi katika kipindi cha mpito utakachochagua (hadi siku saba), ili uweze kuhamia bila kukatizwa kwa huduma. Ubatilishaji ni wa papo hapo.

Orodha ya IP zinazoruhusiwa

Kwa hiari, funga kila mazingira kwenye seti ya anwani za IPv4/IPv6 au masafa ya CIDR kwenye lango la wasanidi programu. Maombi kutoka anwani nyingine yoyote hukataliwa kwa 403 api_ip_not_allowed hata yakiwa yametiwa sahihi ipasavyo. Acha orodha tupu ili kukubali chanzo chochote.