انتقل إلى المحتوى

المصادقة

طريقتان للمصادقة، كلتاهما مرتبطة بمعرّف مفتاحك: الطلبات الموقّعة (موصى بها) أو رموز Bearer عبر OAuth 2 بمنح client credentials.

  1. الطلبات الموقّعة (HMAC-SHA256)
  2. OAuth 2 ببيانات اعتماد العميل
  3. معرّفات المفاتيح والمفاتيح السرية والتدوير
  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 ببيانات اعتماد العميل

إذا كان توقيع كل طلب لا يناسب بنيتك التقنية، فاستبدل معرّف مفتاحك والمفتاح السري برمز Bearer قصير العمر عبر POST /v1/oauth/token (grant_type=client_credentials، بترميز النموذج). تبقى الرموز صالحة 30 دقيقة وتحمل الصلاحيات الممنوحة لك؛ ويمكنك طلب مجموعة فرعية منها عبر المعامل scope.

أرسل الرمز بصيغة Authorization: Bearer مع X-API-Key في كل استدعاء. يُعاد التحقق من معرّف المفتاح في كل طلب، لذا فإن إلغاء مفتاح يُبطل رموزه فورًا.

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

معرّفات المفاتيح والمفاتيح السرية والتدوير

تبدأ مفاتيح البيئة التجريبية بـ dt_sbx_، ومفاتيح الإنتاج بـ dt_live_. ينتمي كل مفتاح إلى بيئة واحدة وشريك واحد. تُعرض المفاتيح السرية مرة واحدة — عند الإنشاء وعند التدوير وعبر رابط الكشف — وتُخزَّن لدينا كبصمات.

دوّر المفاتيح من بوابة المطوّرين: يُصدَر معرّف مفتاح ومفتاح سري جديدان بينما يستمر المفتاح القديم في العمل خلال فترة السماح التي تختارها (حتى سبعة أيام)، لتتمكن من التبديل دون انقطاع. أما الإلغاء فيسري فورًا.

قائمة السماح لعناوين IP

يمكنك اختياريًا تقييد كل بيئة بمجموعة من عناوين IPv4/IPv6 أو نطاقات CIDR من بوابة المطوّرين. تُرفض الطلبات الواردة من أي عنوان آخر بالخطأ 403 api_ip_not_allowed حتى لو كانت موقّعة بشكل صحيح. اترك القائمة فارغة لقبول أي مصدر.