Spring til indhold

Godkendelse

To måder at godkende på, begge knyttet til dit nøgle-id: signerede forespørgsler (anbefales) eller OAuth 2-bearer-tokens via client credentials.

  1. Signerede forespørgsler (HMAC-SHA256)
  2. OAuth 2 med client credentials
  3. Nøgle-id'er, hemmelige nøgler og rotation
  4. IP-tilladelsesliste

Signerede forespørgsler (HMAC-SHA256)

Send X-API-Key, X-Timestamp, X-Nonce og X-Signature ved hvert kald. Signaturen dækker metoden, det præcise forespørgselsmål (sti og forespørgselsstreng), tidsstemplet, nonce og brødtekstens hash, så en genafspillet eller ændret forespørgsel fejler verificeringen. Urforskydning på op til fem minutter tolereres; genbrug af en nonce inden for ti minutter afvises med 401 api_nonce_reused.

Beregn signaturen over præcis de rå bytes, du sender. Serialisér din JSON én gang, hash netop de bytes, og send de samme bytes som brødtekst — genserialisering efter signering er den hyppigste årsag til 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 med client credentials

Hvis det ikke passer til din stack at signere hver forespørgsel, kan du veksle dit nøgle-id og din hemmelige nøgle til et kortlivet bearer-token via POST /v1/oauth/token (grant_type=client_credentials, formularkodet). Tokens gælder i 30 minutter og indeholder dine tildelte adgangsområder; du kan anmode om en delmængde med parameteren scope.

Send tokenet som Authorization: Bearer sammen med X-API-Key ved hvert kald. Nøgle-id'et kontrolleres igen ved hver forespørgsel, så tilbagekaldelse af en nøgle ugyldiggør straks dens tokens.

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

Nøgle-id'er, hemmelige nøgler og rotation

Testnøgler starter med dt_sbx_, produktionsnøgler med dt_live_. En nøgle tilhører ét miljø og én partner. Hemmelige nøgler vises én gang — ved oprettelse, ved rotation og via visningslinket — og gemmes hashet hos os.

Rotér fra udviklerportalen: et nyt nøgle-id og en ny hemmelig nøgle udstedes, mens den gamle nøgle virker fortsat i den overgangsperiode, du vælger (op til syv dage), så du kan skifte uden nedetid. Tilbagekaldelse sker med det samme.

IP-tilladelsesliste

Du kan vælge at låse hvert miljø til et sæt IPv4/IPv6-adresser eller CIDR-intervaller i udviklerportalen. Forespørgsler fra enhver anden adresse afvises med 403 api_ip_not_allowed, selv når de er korrekt signeret. Lad listen være tom for at acceptere enhver oprindelse.