Pređi na sadržaj

Autentifikacija

Dva načina autentifikacije, oba vezana za ID vašeg ključa: potpisani zahtevi (preporučeno) ili OAuth 2 client-credentials bearer tokeni.

  1. Potpisani zahtevi (HMAC-SHA256)
  2. OAuth 2 client credentials (akreditivi klijenta)
  3. ID-jevi ključeva, tajni ključevi i zamena
  4. Lista dozvoljenih IP adresa

Potpisani zahtevi (HMAC-SHA256)

U svakom pozivu pošaljite X-API-Key, X-Timestamp, X-Nonce i X-Signature. Potpis obuhvata metod, tačan cilj zahteva (putanju i upit), vremensku oznaku, nonce i heš tela, pa ponovljeni ili izmenjeni zahtev ne prolazi proveru. Toleriše se odstupanje sata do pet minuta; ponovna upotreba nonce vrednosti u roku od deset minuta odbija se sa 401 api_nonce_reused.

Izračunajte potpis nad sirovim bajtovima koje šaljete. Serijalizujte JSON jednom, heširajte upravo te bajtove i pošaljite iste bajtove kao telo — ponovna serijalizacija posle potpisivanja najčešći je uzrok greške 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 (akreditivi klijenta)

Ako potpisivanje svakog zahteva ne odgovara vašem steku, zamenite ID ključa i tajni ključ za kratkotrajni bearer token na POST /v1/oauth/token (grant_type=client_credentials, form-encoded). Tokeni važe 30 minuta i nose dodeljene opsege; parametrom scope možete zatražiti njihov podskup.

Token šaljite kao Authorization: Bearer zajedno sa X-API-Key u svakom pozivu. ID ključa se ponovo proverava pri svakom zahtevu, pa opoziv ključa odmah poništava i njegove tokene.

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-jevi ključeva, tajni ključevi i zamena

Sandbox ključevi počinju sa dt_sbx_, produkcioni sa dt_live_. Ključ pripada jednom okruženju i jednom partneru. Tajni ključevi se prikazuju jednom — pri kreiranju, pri zameni i preko linka za prikaz — i kod nas se čuvaju heširani.

Ključ zamenite na portalu za programere: izdaju se novi ID ključa i tajni ključ, dok stari ključ nastavlja da radi tokom prelaznog perioda koji izaberete (do sedam dana), pa možete da pređete bez prekida rada. Opoziv je trenutan.

Lista dozvoljenih IP adresa

Po želji na portalu za programere vežite svako okruženje za skup IPv4/IPv6 adresa ili CIDR opsega. Zahtevi sa bilo koje druge adrese odbijaju se sa 403 api_ip_not_allowed čak i kada su ispravno potpisani. Ostavite listu praznom da biste prihvatili bilo koje poreklo.