مواد پر جائیں

تصدیقِ شناخت

تصدیقِ شناخت کے دو طریقے، دونوں آپ کی کلید ID سے منسلک: دستخط شدہ درخواستیں (تجویز کردہ) یا OAuth 2 client credentials کے bearer ٹوکنز۔

  1. دستخط شدہ درخواستیں (HMAC-SHA256)
  2. OAuth 2: کلائنٹ اسناد (client credentials)
  3. کلید IDs، خفیہ کلیدیں اور تبدیلی
  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)

اگر ہر درخواست پر دستخط آپ کے اسٹیک کے مطابق نہیں تو POST /v1/oauth/token (grant_type=client_credentials، form-encoded) پر اپنی کلید ID اور خفیہ کلید کے بدلے ایک مختصر مدت کا bearer ٹوکن حاصل کریں۔ ٹوکن 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

کلید IDs، خفیہ کلیدیں اور تبدیلی

سینڈ باکس کلیدیں dt_sbx_ سے اور پروڈکشن کلیدیں dt_live_ سے شروع ہوتی ہیں۔ ایک کلید ایک ماحول اور ایک پارٹنر سے تعلق رکھتی ہے۔ خفیہ کلیدیں ایک بار دکھائی جاتی ہیں — بناتے وقت، تبدیلی کے وقت اور ظاہر کرنے والے لنک کے ذریعے — اور ہمارے ہاں ہیش کی صورت میں محفوظ ہوتی ہیں۔

ڈویلپر پورٹل سے کلید تبدیل کریں: نئی کلید ID اور خفیہ کلید جاری ہوتی ہے جبکہ پرانی کلید آپ کی منتخب رعایتی مدت (سات دن تک) کام کرتی رہتی ہے، تاکہ آپ بغیر تعطل کے منتقل ہو سکیں۔ واپسی فوری ہوتی ہے۔

IP اجازت فہرست

اختیاری طور پر ڈویلپر پورٹل میں ہر ماحول کو IPv4/IPv6 پتوں یا CIDR رینجز کے ایک مجموعے تک محدود کریں۔ کسی بھی دوسرے پتے سے آنے والی درخواستیں درست دستخط کے باوجود 403 api_ip_not_allowed کے ساتھ مسترد ہو جاتی ہیں۔ کسی بھی ماخذ کو قبول کرنے کے لیے فہرست خالی چھوڑ دیں۔