OAuth 2.1

অন্য অ্যাপকে তাদের ব্যবহারকারীদের Bot-Hosting অ্যাকাউন্ট দিয়ে সাইন ইন করতে দিন, ঠিক Discord দিয়ে সাইন ইনের মতো। OAuth 2.1 ও PKCE-র উপর তৈরি, তাই যেকোনো স্ট্যান্ডার্ড OAuth ক্লায়েন্ট কাজ করে।

নিজের অ্যাকাউন্ট চালাতে API কী ব্যবহার করুন। যখন এমন অ্যাপ বানান যা অন্যদের অ্যাকাউন্টে কাজ করে, তখন OAuth ব্যবহার করুন, যাতে তারা কী পেস্ট না করে লগ ইন করে সম্মতি দিতে পারে। ChatGPT-র মতো AI সহকারীরা ঠিক এই ফ্লো দিয়েই কানেক্ট করে।

ফ্লো

  1. 01 একটি অ্যাপ তৈরি করুন ডেভেলপার সেটিংসে একটি নাম ও একটি রিডাইরেক্ট URI নিবন্ধন করুন। আপনি একটি পাবলিক client_id পাবেন, কোনো সিক্রেট ছাড়া।
  2. 02 ব্যবহারকারীদের অনুমোদনে পাঠান PKCE সহ /oauth/authorize-এ রিডাইরেক্ট করুন। ব্যবহারকারী লগ ইন করে স্কোপগুলো অনুমোদন করেন।
  3. 03 কোড বিনিময় করুন তারা একটি কোড নিয়ে ফিরে আসে। অ্যাক্সেস টোকেনের জন্য সেটি টোকেন এন্ডপয়েন্টে POST করুন।
  4. 04 তাদের হয়ে API কল করুন টোকেনটি Bearer হিসেবে /api/v1-এ পাঠান, আর ব্যাকগ্রাউন্ডে রিফ্রেশ করুন।

এন্ডপয়েন্ট

এন্ডপয়েন্টউদ্দেশ্য
GET /oauth/authorizeব্যবহারকারীর সম্মতির স্ক্রিন, ব্রাউজারে খোলে।
POST /api/oauth/tokenকোডের বিনিময়ে টোকেন নিন, অথবা রিফ্রেশ করুন।
POST /api/oauth/registerDynamic Client Registration (RFC 7591), ঐচ্ছিক।
GET /.well-known/oauth-authorization-serverডিসকভারি মেটাডেটা।
GET /.well-known/oauth-protected-resourceরিসোর্স মেটাডেটা, MCP ক্লায়েন্টরা ব্যবহার করে।

টোকেনের মেয়াদ

অথরাইজেশন কোড 10 মিনিট একবার ব্যবহারযোগ্য, PKCE-র সাথে যুক্ত।
অ্যাক্সেস টোকেন 7 দিন /api/v1 কলের জন্য Bearer।
রিফ্রেশ টোকেন 30 দিন প্রতিবার ব্যবহারে বদলে যায়।

রিফ্রেশ

প্রতিটি রিফ্রেশ একটি নতুন রিফ্রেশ টোকেন ফেরত দেয় এবং পুরোনোটি বাতিল করে: সংরক্ষিতটি সবসময় ওভাররাইট করুন। রিফ্রেশ invalid_grant ফেরত দিলে ব্যবহারকারীকে আবার ধাপ 1-এ পাঠান।

নিরাপত্তা

  • টোকেন সার্ভারে সংরক্ষণ করুন এবং সংশ্লিষ্ট ব্যবহারকারীর সাথে যুক্ত রাখুন। কখনো ব্রাউজারে বা পাবলিক রিপোজিটরিতে পাঠাবেন না।
  • ব্যবহারকারী আপনার অ্যাপ ডিসকানেক্ট করা মাত্রই টোকেন বাতিল হয়।
  • প্রোডাকশনে https রিডাইরেক্ট URI ব্যবহার করুন। লোকাল টেস্টিংয়ে http গ্রহণযোগ্য।
  • OAuth টোকেন কখনো অ্যাডমিন অনুমতি দেয় না, যে স্কোপই অনুমোদিত হোক।