Autentisering
To måter å autentisere på, begge knyttet til nøkkel-ID-en din: signerte forespørsler (anbefalt) eller bearer-tokener med OAuth 2-klientlegitimasjon.
- Signerte forespørsler (HMAC-SHA256)
- OAuth 2-klientlegitimasjon
- Nøkkel-ID-er, hemmeligheter og rotering
- IP-tillatelsesliste
Signerte forespørsler (HMAC-SHA256)
Send X-API-Key, X-Timestamp, X-Nonce og X-Signature i hvert kall. Signaturen dekker metoden, det nøyaktige forespørselsmålet (sti og spørring), tidsstempelet, nonce-verdien og hashen av forespørselsteksten, slik at en gjentatt eller endret forespørsel ikke består verifiseringen. Klokkeavvik på opptil fem minutter tolereres; gjenbruk av en nonce innen ti minutter avvises med 401 api_nonce_reused.
Beregn signaturen over de rå bytene du faktisk sender. Serialiser JSON-en én gang, hash nøyaktig de bytene og send de samme bytene som forespørselstekst – ny serialisering etter signering er den vanligste årsaken til api_signature_invalid.
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-klientlegitimasjon
Hvis det ikke passer stakken din å signere hver forespørsel, kan du bytte nøkkel-ID og hemmelighet mot et kortlivet bearer-token på POST /v1/oauth/token (grant_type=client_credentials, skjemakodet). Tokener varer i 30 minutter og har tilgangene du er tildelt; du kan be om et utvalg med parameteren scope.
Send tokenet som Authorization: Bearer sammen med X-API-Key i hvert kall. Nøkkel-ID-en kontrolleres på nytt ved hver forespørsel, så når en nøkkel tilbakekalles, blir tokenene dens ugyldige umiddelbart.
curl -X POST "https://api.dubaitrip.com/v1/oauth/token" \
-d grant_type=client_credentials -d client_id=$KEY_ID -d client_secret=$SECRETNøkkel-ID-er, hemmeligheter og rotering
Sandkassenøkler begynner med dt_sbx_, produksjonsnøkler med dt_live_. En nøkkel tilhører ett miljø og én partner. Hemmeligheter vises én gang – ved oppretting, ved rotering og via visningslenken – og lagres kun som hash hos oss.
Roter fra utviklerportalen: en ny nøkkel-ID og hemmelighet utstedes mens den gamle nøkkelen fortsetter å virke i overgangsperioden du velger (opptil sju dager), slik at du kan bytte uten nedetid. Tilbakekalling skjer umiddelbart.
IP-tillatelsesliste
Du kan eventuelt låse hvert miljø til et sett IPv4/IPv6-adresser eller CIDR-områder i utviklerportalen. Forespørsler fra andre adresser avvises med 403 api_ip_not_allowed selv om de er riktig signert. La listen stå tom for å godta alle opprinnelser.