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.
- Aláírt kérések (HMAC-SHA256)
- OAuth 2 kliens-hitelesítő adatok
- Kulcsazonosítók, titkos kulcsok és rotálás
- 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.
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 -X POST "https://api.dubaitrip.com/v1/oauth/token" \
-d grant_type=client_credentials -d client_id=$KEY_ID -d client_secret=$SECRETKulcsazonosí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.