การยืนยันตัวตน
ยืนยันตัวตนได้สองวิธี ทั้งคู่ผูกกับ ID คีย์ของคุณ: คำขอที่ลงนาม (แนะนำ) หรือโทเค็น Bearer แบบ OAuth 2 client-credentials
- คำขอที่ลงนาม (HMAC-SHA256)
- ข้อมูลรับรองไคลเอนต์ OAuth 2
- ID คีย์ คีย์ลับ และการหมุนเวียน
- รายการ IP ที่อนุญาต
คำขอที่ลงนาม (HMAC-SHA256)
ส่ง X-API-Key, X-Timestamp, X-Nonce และ X-Signature ในทุกการเรียก ลายเซ็นครอบคลุมเมธอด เป้าหมายคำขอที่แน่นอน (พาธและคิวรี) timestamp, nonce และแฮชของเนื้อหา คำขอที่ถูกส่งซ้ำหรือถูกแก้ไขจึงไม่ผ่านการตรวจสอบ ยอมรับความคลาดเคลื่อนของนาฬิกาได้ไม่เกินห้านาที การใช้ nonce ซ้ำภายในสิบนาทีจะถูกปฏิเสธด้วย 401 api_nonce_reused
คำนวณลายเซ็นจากไบต์ดิบที่คุณส่งจริง ซีเรียลไลซ์ JSON ครั้งเดียว แฮชไบต์ชุดนั้น และส่งไบต์ชุดเดียวกันเป็นเนื้อหา — การซีเรียลไลซ์ใหม่หลังลงนามคือสาเหตุที่พบบ่อยที่สุดของ 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
หากการลงนามทุกคำขอไม่เหมาะกับระบบของคุณ ให้แลก ID คีย์และคีย์ลับเป็นโทเค็น Bearer อายุสั้นที่ POST /v1/oauth/token (grant_type=client_credentials แบบ form-encoded) โทเค็นมีอายุ 30 นาทีและมีขอบเขตสิทธิ์ที่คุณได้รับ คุณสามารถขอเพียงบางส่วนได้ด้วยพารามิเตอร์ scope
ส่งโทเค็นเป็น Authorization: Bearer พร้อม X-API-Key ในทุกการเรียก ID คีย์จะถูกตรวจสอบซ้ำทุกคำขอ การเพิกถอนคีย์จึงทำให้โทเค็นของคีย์นั้นใช้ไม่ได้ทันที
curl -X POST "https://api.dubaitrip.com/v1/oauth/token" \
-d grant_type=client_credentials -d client_id=$KEY_ID -d client_secret=$SECRETID คีย์ คีย์ลับ และการหมุนเวียน
คีย์แซนด์บ็อกซ์ขึ้นต้นด้วย dt_sbx_ คีย์สำหรับใช้งานจริงขึ้นต้นด้วย dt_live_ คีย์หนึ่งตัวเป็นของสภาพแวดล้อมเดียวและพาร์ตเนอร์รายเดียว คีย์ลับแสดงเพียงครั้งเดียว — ตอนสร้าง ตอนหมุนเวียน และผ่านลิงก์เปิดดู — และจัดเก็บแบบแฮชในฝั่งของเรา
หมุนเวียนคีย์ได้จากพอร์ทัลนักพัฒนา: ระบบจะออก ID คีย์และคีย์ลับใหม่ ขณะที่คีย์เดิมยังใช้งานได้ตลอดระยะผ่อนผันที่คุณเลือก (สูงสุดเจ็ดวัน) คุณจึงสลับได้โดยไม่มีช่วงหยุดให้บริการ การเพิกถอนมีผลทันที
รายการ IP ที่อนุญาต
คุณสามารถกำหนดให้แต่ละสภาพแวดล้อมรับเฉพาะชุดที่อยู่ IPv4/IPv6 หรือช่วง CIDR ได้ในพอร์ทัลนักพัฒนา (ไม่บังคับ) คำขอจากที่อยู่อื่นจะถูกปฏิเสธด้วย 403 api_ip_not_allowed แม้จะลงนามถูกต้อง เว้นรายการว่างไว้เพื่อรับจากทุกแหล่ง