Tunnistautuminen
Kaksi tunnistautumistapaa, molemmat sidottu avaintunnisteeseesi: allekirjoitetut pyynnöt (suositus) tai OAuth 2 client credentials -menetelmällä saadut Bearer-tunnisteet.
- Allekirjoitetut pyynnöt (HMAC-SHA256)
- OAuth 2 client credentials -menetelmä
- Avaintunnisteet, salaiset avaimet ja vaihto
- 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.
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 -X POST "https://api.dubaitrip.com/v1/oauth/token" \
-d grant_type=client_credentials -d client_id=$KEY_ID -d client_secret=$SECRETAvaintunnisteet, 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.