মূল কনটেন্টে যান
লাইভ ডেমো

প্রমাণীকরণ

প্রমাণীকরণের দুটি উপায়, দুটিই আপনার কী আইডির সঙ্গে যুক্ত: স্বাক্ষরিত রিকোয়েস্ট (প্রস্তাবিত) অথবা OAuth 2 client-credentials বেয়ারার টোকেন।

  1. স্বাক্ষরিত রিকোয়েস্ট (HMAC-SHA256)
  2. OAuth 2 ক্লায়েন্ট ক্রেডেনশিয়াল
  3. কী আইডি, সিক্রেট ও রোটেশন
  4. IP অনুমোদন তালিকা

স্বাক্ষরিত রিকোয়েস্ট (HMAC-SHA256)

প্রতিটি কলে X-API-Key, X-Timestamp, X-Nonce ও X-Signature পাঠান। স্বাক্ষরে থাকে মেথড, রিকোয়েস্টের সঠিক লক্ষ্য (পাথ ও কোয়েরি), টাইমস্ট্যাম্প, নন্স ও বডির হ্যাশ, তাই পুনরায় পাঠানো বা পরিবর্তিত রিকোয়েস্ট যাচাইয়ে ব্যর্থ হয়। পাঁচ মিনিট পর্যন্ত ঘড়ির পার্থক্য সহ্য করা হয়; দশ মিনিটের মধ্যে কোনো নন্স পুনরায় ব্যবহার করলে 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 ক্লায়েন্ট ক্রেডেনশিয়াল

প্রতিটি রিকোয়েস্ট স্বাক্ষর করা আপনার স্ট্যাকে না মানালে, POST /v1/oauth/token-এ (grant_type=client_credentials, ফর্ম-এনকোডেড) আপনার কী আইডি ও সিক্রেটের বিনিময়ে একটি স্বল্পস্থায়ী বেয়ারার টোকেন নিন। টোকেন 30 মিনিট বৈধ থাকে এবং আপনাকে দেওয়া স্কোপ বহন করে; scope প্যারামিটার দিয়ে আপনি তার একটি অংশ চাইতে পারেন।

প্রতিটি কলে X-API-Key-এর সঙ্গে টোকেনটি Authorization: Bearer হিসেবে পাঠান। প্রতিটি রিকোয়েস্টে কী আইডি আবার যাচাই করা হয়, তাই কোনো কী প্রত্যাহার করলে তার টোকেনগুলো সঙ্গে সঙ্গে অকার্যকর হয়ে যায়।

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 দিয়ে প্রত্যাখ্যান করা হয়। যেকোনো উৎস গ্রহণ করতে তালিকা খালি রাখুন।