Authenticatie
Twee manieren om te authenticeren, beide gekoppeld aan uw sleutel-ID: ondertekende verzoeken (aanbevolen) of OAuth 2 client-credentials bearer-tokens.
- Ondertekende verzoeken (HMAC-SHA256)
- OAuth 2-clientreferenties (client credentials)
- Sleutel-ID's, geheimen en rotatie
- Toegestane IP-adressen
Ondertekende verzoeken (HMAC-SHA256)
Stuur X-API-Key, X-Timestamp, X-Nonce en X-Signature mee bij elke aanroep. De handtekening dekt de methode, het exacte verzoekdoel (pad en query), de timestamp, de nonce en de body-hash, zodat een herhaald of gewijzigd verzoek niet door de verificatie komt. Een klokafwijking van maximaal vijf minuten wordt getolereerd; hergebruik van een nonce binnen tien minuten wordt geweigerd met 401 api_nonce_reused.
Bereken de handtekening over de ruwe bytes die u verstuurt. Serialiseer uw JSON één keer, hash precies die bytes en verstuur dezelfde bytes als body — opnieuw serialiseren na het ondertekenen is de meest voorkomende oorzaak van 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-clientreferenties (client credentials)
Past het ondertekenen van elk verzoek niet bij uw stack, wissel dan uw sleutel-ID en geheim in voor een kortlevend bearer-token via POST /v1/oauth/token (grant_type=client_credentials, form-encoded). Tokens zijn 30 minuten geldig en bevatten uw toegekende scopes; met de parameter scope kunt u een deelverzameling aanvragen.
Stuur het token mee als Authorization: Bearer, samen met X-API-Key, bij elke aanroep. De sleutel-ID wordt bij elk verzoek opnieuw gecontroleerd, dus het intrekken van een sleutel maakt de bijbehorende tokens direct ongeldig.
curl -X POST "https://api.dubaitrip.com/v1/oauth/token" \
-d grant_type=client_credentials -d client_id=$KEY_ID -d client_secret=$SECRETSleutel-ID's, geheimen en rotatie
Sandboxsleutels beginnen met dt_sbx_, productiesleutels met dt_live_. Een sleutel hoort bij één omgeving en één partner. Geheimen worden één keer getoond — bij aanmaken, bij roteren en via de link — en worden bij ons gehasht opgeslagen.
Roteer via het ontwikkelaarsportaal: er worden een nieuwe sleutel-ID en een nieuw geheim uitgegeven, terwijl de oude sleutel blijft werken tijdens de overgangsperiode die u kiest (maximaal zeven dagen), zodat u zonder onderbreking kunt overstappen. Intrekken gaat direct.
Toegestane IP-adressen
Beperk desgewenst elke omgeving in het ontwikkelaarsportaal tot een reeks IPv4/IPv6-adressen of CIDR-bereiken. Verzoeken vanaf een ander adres worden geweigerd met 403 api_ip_not_allowed, ook als ze correct zijn ondertekend. Laat de lijst leeg om elke herkomst te accepteren.