Ugrás a tartalomra

Hitelesítés

Kétféle hitelesítés, mindkettő a kulcsazonosítóhoz kötve: aláírt kérések (ajánlott) vagy OAuth 2 client-credentials bearer tokenek.

  1. Aláírt kérések (HMAC-SHA256)
  2. OAuth 2 kliens-hitelesítő adatok
  3. Kulcsazonosítók, titkos kulcsok és rotálás
  4. IP-engedélyezési lista

Aláírt kérések (HMAC-SHA256)

Minden híváshoz küldje el az X-API-Key, X-Timestamp, X-Nonce és X-Signature fejlécet. Az aláírás lefedi a metódust, a pontos kéréscélt (útvonal és lekérdezés), az időbélyeget, a nonce-t és a törzs hash-ét, így a visszajátszott vagy módosított kérés nem megy át az ellenőrzésen. Legfeljebb öt perc óraeltérést tolerálunk; ha egy nonce-t tíz percen belül újra felhasználnak, 401 api_nonce_reused hibával utasítjuk el.

Az aláírást a ténylegesen elküldött nyers bájtokon számítsa ki. Egyszer szerializálja a JSON-t, ezeket a bájtokat hash-elje, és pontosan ugyanezeket küldje törzsként — az aláírás utáni újraszerializálás az api_signature_invalid leggyakoribb oka.

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 kliens-hitelesítő adatok

Ha minden kérés aláírása nem illik a technológiai környezetébe, cserélje be kulcsazonosítóját és titkos kulcsát egy rövid életű bearer tokenre a POST /v1/oauth/token végponton (grant_type=client_credentials, form-encoded). A tokenek 30 percig élnek, és a megadott hatóköröket hordozzák; a scope paraméterrel ezek egy részhalmazát is kérheti.

A tokent Authorization: Bearer fejlécként küldje, minden hívásnál az X-API-Key fejléccel együtt. A kulcsazonosítót minden kérésnél újraellenőrizzük, így egy kulcs visszavonása azonnal érvényteleníti a tokenjeit.

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

Kulcsazonosítók, titkos kulcsok és rotálás

A tesztkörnyezeti kulcsok dt_sbx_, az éles kulcsok dt_live_ előtaggal kezdődnek. Egy kulcs egyetlen környezethez és egyetlen partnerhez tartozik. A titkos kulcsok egyszer jelennek meg — létrehozáskor, rotáláskor és a megjelenítő linken keresztül —, és nálunk hash-elve tároljuk őket.

Rotáljon a fejlesztői portálon: új kulcsazonosítót és titkos kulcsot adunk ki, a régi kulcs pedig az Ön által választott türelmi idő alatt (legfeljebb hét napig) tovább működik, így leállás nélkül válthat. A visszavonás azonnali.

IP-engedélyezési lista

A fejlesztői portálon opcionálisan minden környezetet IPv4/IPv6-címek vagy CIDR-tartományok egy halmazához köthet. Bármely más címről érkező kérést 403 api_ip_not_allowed hibával utasítunk el, még helyes aláírás esetén is. Hagyja üresen a listát, ha bármely forrást elfogad.