Siirry sisältöön

Tunnistautuminen

Kaksi tunnistautumistapaa, molemmat sidottu avaintunnisteeseesi: allekirjoitetut pyynnöt (suositus) tai OAuth 2 client credentials -menetelmällä saadut Bearer-tunnisteet.

  1. Allekirjoitetut pyynnöt (HMAC-SHA256)
  2. OAuth 2 client credentials -menetelmä
  3. Avaintunnisteet, salaiset avaimet ja vaihto
  4. Sallittujen IP-osoitteiden lista

Allekirjoitetut pyynnöt (HMAC-SHA256)

Lähetä X-API-Key, X-Timestamp, X-Nonce ja X-Signature jokaisessa kutsussa. Allekirjoitus kattaa metodin, tarkan pyyntökohteen (polku ja kysely), aikaleiman, noncen ja rungon tiivisteen, joten uudelleenlähetetty tai muutettu pyyntö ei läpäise tarkistusta. Enintään viiden minuutin kellopoikkeama sallitaan; noncen uudelleenkäyttö kymmenen minuutin sisällä hylätään virheellä 401 api_nonce_reused.

Laske allekirjoitus niistä raaoista tavuista, jotka todella lähetät. Sarjallista JSON kerran, laske tiiviste juuri niistä tavuista ja lähetä samat tavut runkona – uudelleensarjallistaminen allekirjoituksen jälkeen on yleisin syy virheeseen 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 -menetelmä

Jos jokaisen pyynnön allekirjoittaminen ei sovi pinoosi, vaihda avaintunniste ja salainen avain lyhytikäiseen Bearer-tunnisteeseen osoitteessa POST /v1/oauth/token (grant_type=client_credentials, lomakekoodattuna). Tunnisteet ovat voimassa 30 minuuttia ja sisältävät myönnetyt käyttöoikeutesi; voit pyytää niistä osajoukkoa scope-parametrilla.

Lähetä tunniste muodossa Authorization: Bearer yhdessä X-API-Key-otsakkeen kanssa jokaisessa kutsussa. Avaintunniste tarkistetaan jokaisen pyynnön yhteydessä, joten avaimen mitätöinti mitätöi myös sen tunnisteet välittömästi.

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

Avaintunnisteet, salaiset avaimet ja vaihto

Sandbox-avaimet alkavat dt_sbx_, tuotantoavaimet dt_live_. Avain kuuluu yhteen ympäristöön ja yhdelle kumppanille. Salaiset avaimet näytetään kerran – luonnin ja vaihdon yhteydessä sekä näyttölinkin kautta – ja ne tallennetaan meillä tiivisteenä.

Vaihda avaimet kehittäjäportaalissa: uusi avaintunniste ja salainen avain myönnetään, ja vanha avain toimii valitsemasi siirtymäajan (enintään seitsemän päivää), joten voit vaihtaa ilman katkoksia. Mitätöinti on välitön.

Sallittujen IP-osoitteiden lista

Voit halutessasi rajata kunkin ympäristön kehittäjäportaalissa tiettyihin IPv4/IPv6-osoitteisiin tai CIDR-alueisiin. Muista osoitteista tulevat pyynnöt hylätään virheellä 403 api_ip_not_allowed, vaikka ne olisi allekirjoitettu oikein. Jätä lista tyhjäksi hyväksyäksesi minkä tahansa lähteen.