Hoppa till innehållet

Autentisering

Två sätt att autentisera, båda knutna till ditt nyckel-id: signerade anrop (rekommenderas) eller bearer-tokens via OAuth 2 client credentials.

  1. Signerade anrop (HMAC-SHA256)
  2. OAuth 2 med klientuppgifter (client credentials)
  3. Nyckel-id:n, hemliga nycklar och rotation
  4. Tillåtelselista för IP

Signerade anrop (HMAC-SHA256)

Skicka X-API-Key, X-Timestamp, X-Nonce och X-Signature i varje anrop. Signaturen omfattar metoden, det exakta anropsmålet (sökväg och frågesträng), tidsstämpeln, noncen och kroppens hash, så att ett återuppspelat eller ändrat anrop inte klarar verifieringen. Klockavvikelse på upp till fem minuter tolereras; återanvändning av en nonce inom tio minuter avvisas med 401 api_nonce_reused.

Beräkna signaturen över de råa byte du faktiskt skickar. Serialisera din JSON en gång, hasha exakt de byten och skicka samma byte som kropp – att serialisera om efter signeringen är den vanligaste orsaken till 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 klientuppgifter (client credentials)

Om signering av varje anrop inte passar din stack byter du nyckel-id och hemlig nyckel mot en kortlivad bearer-token via POST /v1/oauth/token (grant_type=client_credentials, formulärkodat). Tokens gäller i 30 minuter och bär dina beviljade behörigheter; du kan begära en delmängd med parametern scope.

Skicka token som Authorization: Bearer tillsammans med X-API-Key i varje anrop. Nyckel-id:t kontrolleras på nytt vid varje anrop, så att återkalla en nyckel ogiltigförklarar dess tokens omedelbart.

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

Nyckel-id:n, hemliga nycklar och rotation

Sandbox-nycklar börjar med dt_sbx_, produktionsnycklar med dt_live_. En nyckel tillhör en miljö och en partner. Hemliga nycklar visas en gång – när de skapas, när de roteras och via visningslänken – och lagras hashade hos oss.

Rotera i utvecklarportalen: ett nytt nyckel-id och en ny hemlig nyckel utfärdas medan den gamla nyckeln fortsätter att fungera under den övergångsperiod du väljer (upp till sju dagar), så att du kan byta utan driftstopp. Återkallelse gäller omedelbart.

Tillåtelselista för IP

Du kan valfritt låsa varje miljö till en uppsättning IPv4/IPv6-adresser eller CIDR-intervall i utvecklarportalen. Anrop från alla andra adresser avvisas med 403 api_ip_not_allowed, även när de är korrekt signerade. Lämna listan tom för att acceptera alla ursprung.