Перейти до вмісту

Автентифікація

Два способи автентифікації, обидва прив’язані до ID вашого ключа: підписані запити (рекомендовано) або bearer-токени OAuth 2 client credentials.

  1. Підписані запити (HMAC-SHA256)
  2. OAuth 2: облікові дані клієнта (client credentials)
  3. ID ключів, секрети та ротація
  4. Список дозволених IP

Підписані запити (HMAC-SHA256)

Надсилайте X-API-Key, X-Timestamp, X-Nonce і X-Signature з кожним викликом. Підпис охоплює метод, точну ціль запиту (шлях і рядок запиту), мітку часу, nonce і хеш тіла, тож повторений або змінений запит не пройде перевірку. Допускається розбіжність годинника до п’яти хвилин; повторне використання nonce протягом десяти хвилин відхиляється з 401 api_nonce_reused.

Обчислюйте підпис над сирими байтами, які ви відправляєте. Серіалізуйте JSON один раз, хешуйте саме ці байти й надсилайте ті самі байти як тіло — повторна серіалізація після підписування є найпоширенішою причиною 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)

Якщо підписування кожного запиту не вписується у ваш стек, обміняйте ID ключа й секрет на короткоживучий bearer-токен через POST /v1/oauth/token (grant_type=client_credentials, form-encoded). Токени живуть 30 хвилин і містять надані вам області доступу; за допомогою параметра scope можна запросити їх підмножину.

Надсилайте токен як Authorization: Bearer разом із X-API-Key у кожному виклику. ID ключа перевіряється під час кожного запиту, тож відкликання ключа одразу робить недійсними його токени.

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

ID ключів, секрети та ротація

Ключі пісочниці починаються з dt_sbx_, ключі продакшну — з dt_live_. Ключ належить одному середовищу й одному партнерові. Секрети показуються один раз — під час створення, ротації та через посилання для розкриття — і зберігаються в нас у вигляді хешу.

Ротуйте ключі на порталі розробника: видається новий ID ключа й секрет, а старий ключ працює протягом обраного вами пільгового періоду (до семи днів), тож ви можете перейти без простою. Відкликання діє негайно.

Список дозволених IP

За бажанням прив’яжіть кожне середовище до набору адрес IPv4/IPv6 або діапазонів CIDR на порталі розробника. Запити з будь-якої іншої адреси відхиляються з 403 api_ip_not_allowed навіть за правильного підпису. Залиште список порожнім, щоб приймати запити з будь-якого джерела.