Google API অ্যাক্সেস করতে OAuth 2.0 ব্যবহার করা হচ্ছে

Google APIগুলি প্রমাণীকরণ এবং অনুমোদনের জন্য OAuth 2.0 প্রোটোকল ব্যবহার করে৷ Google সাধারণ OAuth 2.0 পরিস্থিতিগুলিকে সমর্থন করে যেমন ওয়েব সার্ভার, ক্লায়েন্ট-সাইড, ইনস্টল করা এবং সীমিত-ইনপুট ডিভাইস অ্যাপ্লিকেশনগুলির জন্য।

শুরু করতে, থেকে OAuth 2.0 ক্লায়েন্ট শংসাপত্রগুলি পান৷ Google API Console . তারপর আপনার ক্লায়েন্ট অ্যাপ্লিকেশন Google অনুমোদন সার্ভার থেকে একটি অ্যাক্সেস টোকেন অনুরোধ করে, প্রতিক্রিয়া থেকে একটি টোকেন বের করে এবং আপনি যে Google API-এ অ্যাক্সেস করতে চান সেটিকে টোকেন পাঠায়। Google এর সাথে OAuth 2.0 ব্যবহার করার একটি ইন্টারেক্টিভ প্রদর্শনের জন্য (আপনার নিজস্ব ক্লায়েন্ট শংসাপত্রগুলি ব্যবহার করার বিকল্প সহ), OAuth 2.0 প্লেগ্রাউন্ডের সাথে পরীক্ষা করুন৷

এই পৃষ্ঠাটি OAuth 2.0 অনুমোদনের পরিস্থিতিগুলির একটি ওভারভিউ দেয় যা Google সমর্থন করে এবং আরও বিস্তারিত বিষয়বস্তুর লিঙ্ক প্রদান করে। প্রমাণীকরণের জন্য OAuth 2.0 ব্যবহার সম্পর্কে বিস্তারিত জানার জন্য, OpenID Connect দেখুন।

মৌলিক পদক্ষেপ

OAuth 2.0 ব্যবহার করে Google API অ্যাক্সেস করার সময় সমস্ত অ্যাপ্লিকেশন একটি মৌলিক প্যাটার্ন অনুসরণ করে। একটি উচ্চ স্তরে, আপনি পাঁচটি ধাপ অনুসরণ করুন:

1. থেকে OAuth 2.0 শংসাপত্রগুলি পান৷ Google API Console.

ভিজিট করুন Google API Console OAuth 2.0 শংসাপত্র যেমন একটি ক্লায়েন্ট আইডি এবং ক্লায়েন্ট গোপন যা Google এবং আপনার অ্যাপ্লিকেশন উভয়ের কাছেই পরিচিত। আপনি কি ধরণের অ্যাপ্লিকেশন তৈরি করছেন তার উপর ভিত্তি করে মানগুলির সেট পরিবর্তিত হয়। উদাহরণস্বরূপ, একটি জাভাস্ক্রিপ্ট অ্যাপ্লিকেশন একটি গোপন প্রয়োজন হয় না, কিন্তু একটি ওয়েব সার্ভার অ্যাপ্লিকেশন আছে.

আপনার অ্যাপটি যে প্ল্যাটফর্মে চলবে তার জন্য আপনাকে অবশ্যই উপযুক্ত একটি OAuth ক্লায়েন্ট তৈরি করতে হবে, উদাহরণস্বরূপ:

2. Google অনুমোদন সার্ভার থেকে একটি অ্যাক্সেস টোকেন পান৷

আপনার অ্যাপ্লিকেশন একটি Google API ব্যবহার করে ব্যক্তিগত ডেটা অ্যাক্সেস করার আগে, এটিকে অবশ্যই একটি অ্যাক্সেস টোকেন পেতে হবে যা সেই API-তে অ্যাক্সেস মঞ্জুর করে৷ একটি একক অ্যাক্সেস টোকেন একাধিক API-তে বিভিন্ন মাত্রার অ্যাক্সেস মঞ্জুর করতে পারে। scope নামক একটি পরিবর্তনশীল প্যারামিটার সম্পদ এবং ক্রিয়াকলাপগুলির সেট নিয়ন্ত্রণ করে যা একটি অ্যাক্সেস টোকেন অনুমতি দেয়। অ্যাক্সেস-টোকেন অনুরোধের সময়, আপনার অ্যাপ্লিকেশন scope প্যারামিটারে এক বা একাধিক মান পাঠায়।

এই অনুরোধ করার বিভিন্ন উপায় রয়েছে এবং আপনি যে ধরনের অ্যাপ্লিকেশন তৈরি করছেন তার উপর ভিত্তি করে সেগুলি পরিবর্তিত হয়। উদাহরণস্বরূপ, একটি জাভাস্ক্রিপ্ট অ্যাপ্লিকেশন Google-এ একটি ব্রাউজার রিডাইরেক্ট ব্যবহার করে একটি অ্যাক্সেস টোকেনের অনুরোধ করতে পারে, যখন কোনো ব্রাউজার নেই এমন ডিভাইসে ইনস্টল করা একটি অ্যাপ্লিকেশন ওয়েব পরিষেবার অনুরোধ ব্যবহার করে।

কিছু অনুরোধের জন্য একটি প্রমাণীকরণ পদক্ষেপ প্রয়োজন যেখানে ব্যবহারকারী তাদের Google অ্যাকাউন্ট দিয়ে লগ ইন করে। লগ ইন করার পরে, ব্যবহারকারীকে জিজ্ঞাসা করা হয় যে তারা আপনার আবেদনের জন্য অনুরোধ করা এক বা একাধিক অনুমতি দিতে ইচ্ছুক কিনা। এই প্রক্রিয়াটিকে ব্যবহারকারীর সম্মতি বলা হয়।

যদি ব্যবহারকারী কমপক্ষে একটি অনুমতি দেয়, Google অনুমোদন সার্ভার আপনার অ্যাপ্লিকেশনটিকে একটি অ্যাক্সেস টোকেন (বা একটি অনুমোদন কোড যা আপনার অ্যাপ্লিকেশনটি একটি অ্যাক্সেস টোকেন পেতে ব্যবহার করতে পারে) এবং সেই টোকেন দ্বারা প্রদত্ত অ্যাক্সেসের সুযোগগুলির একটি তালিকা পাঠায়। ব্যবহারকারী অনুমতি না দিলে, সার্ভার একটি ত্রুটি ফেরত দেয়।

ক্রমবর্ধমানভাবে স্কোপের অনুরোধ করা একটি সর্বোত্তম অভ্যাস, যখন অ্যাক্সেসের প্রয়োজন হয়, সামনের পরিবর্তে। উদাহরণস্বরূপ, একটি অ্যাপ যেটি একটি ইভেন্টকে একটি ক্যালেন্ডারে সংরক্ষণ করা সমর্থন করতে চায় তার Google ক্যালেন্ডার অ্যাক্সেসের অনুরোধ করা উচিত নয় যতক্ষণ না ব্যবহারকারী "ক্যালেন্ডারে যোগ করুন" বোতাম টিপে; ক্রমবর্ধমান অনুমোদন দেখুন।

3. ব্যবহারকারী দ্বারা প্রদত্ত অ্যাক্সেসের সুযোগগুলি পরীক্ষা করুন৷

একটি সম্পর্কিত Google API অ্যাক্সেসের উপর নির্ভর করে আপনার অ্যাপ্লিকেশনের বৈশিষ্ট্য এবং কার্যকারিতা অ্যাক্সেস করার জন্য প্রয়োজনীয় স্কোপের সাথে অ্যাক্সেস টোকেন প্রতিক্রিয়াতে অন্তর্ভুক্ত স্কোপের তুলনা করুন। সম্পর্কিত API অ্যাক্সেস ছাড়া কাজ করতে অক্ষম আপনার অ্যাপের কোনো বৈশিষ্ট্য অক্ষম করুন।

আপনার অনুরোধে অন্তর্ভুক্ত সুযোগ আপনার প্রতিক্রিয়াতে অন্তর্ভুক্ত সুযোগের সাথে নাও মিলতে পারে, এমনকি যদি ব্যবহারকারী অনুরোধ করা সমস্ত সুযোগ প্রদান করে থাকে। অ্যাক্সেসের জন্য প্রয়োজনীয় স্কোপের জন্য প্রতিটি Google API-এর ডকুমেন্টেশন পড়ুন। একটি API একাধিক স্কোপ স্ট্রিং মানগুলিকে অ্যাক্সেসের একক সুযোগে ম্যাপ করতে পারে, অনুরোধে অনুমোদিত সমস্ত মানগুলির জন্য একই স্কোপ স্ট্রিং ফেরত দেয়৷ উদাহরণ: Google People API https://www.googleapis.com/auth/contacts এর একটি স্কোপ ফেরত দিতে পারে যখন কোনো অ্যাপ ব্যবহারকারীকে অনুরোধ করে https://www.google.com/m8/feeds/ ; Google People API পদ্ধতি people.updateContact এর জন্য https://www.googleapis.com/auth/contacts এর একটি প্রদত্ত সুযোগ প্রয়োজন।

4. একটি API এ অ্যাক্সেস টোকেন পাঠান।

একটি অ্যাপ্লিকেশন একটি অ্যাক্সেস টোকেন পাওয়ার পরে, এটি একটি HTTP অনুমোদন অনুরোধ শিরোনামে একটি Google API এ টোকেন পাঠায়। URI ক্যোয়ারী-স্ট্রিং প্যারামিটার হিসাবে টোকেন পাঠানো সম্ভব, কিন্তু আমরা এটি সুপারিশ করি না, কারণ URI প্যারামিটারগুলি লগ ফাইলগুলিতে শেষ হতে পারে যেগুলি সম্পূর্ণ সুরক্ষিত নয়৷ এছাড়াও, অপ্রয়োজনীয় URI প্যারামিটার নাম তৈরি করা এড়াতে REST অনুশীলন করা ভাল।

অ্যাক্সেস টোকেন শুধুমাত্র টোকেন অনুরোধের scope বর্ণিত ক্রিয়াকলাপ এবং সংস্থানগুলির সেটের জন্য বৈধ। উদাহরণস্বরূপ, যদি Google ক্যালেন্ডার API-এর জন্য একটি অ্যাক্সেস টোকেন জারি করা হয়, তবে এটি Google পরিচিতি API-তে অ্যাক্সেস দেয় না। আপনি, যাইহোক, অনুরূপ ক্রিয়াকলাপের জন্য একাধিকবার Google ক্যালেন্ডার API-এ সেই অ্যাক্সেস টোকেনটি পাঠাতে পারেন।

5. প্রয়োজনে অ্যাক্সেস টোকেন রিফ্রেশ করুন।

অ্যাক্সেস টোকেন সীমিত জীবনকাল আছে. আপনার অ্যাপ্লিকেশানের যদি একটি একক অ্যাক্সেস টোকেনের জীবনকালের বাইরে একটি Google API-এ অ্যাক্সেসের প্রয়োজন হয়, তবে এটি একটি রিফ্রেশ টোকেন পেতে পারে। একটি রিফ্রেশ টোকেন আপনার অ্যাপ্লিকেশনকে নতুন অ্যাক্সেস টোকেন পেতে অনুমতি দেয়।

দৃশ্যকল্প

ওয়েব সার্ভার অ্যাপ্লিকেশন

Google OAuth 2.0 এন্ডপয়েন্ট ওয়েব সার্ভার অ্যাপ্লিকেশনগুলিকে সমর্থন করে যেগুলি ভাষা এবং ফ্রেমওয়ার্ক যেমন PHP, Java, Go, Python, Ruby এবং ASP.NET ব্যবহার করে৷

অনুমোদনের ক্রম শুরু হয় যখন আপনার অ্যাপ্লিকেশন একটি ব্রাউজারকে Google URL-এ পুনঃনির্দেশ করে; URL-এ ক্যোয়ারী প্যারামিটার রয়েছে যা অনুরোধ করা হচ্ছে অ্যাক্সেসের ধরন নির্দেশ করে। Google ব্যবহারকারীর প্রমাণীকরণ, সেশন নির্বাচন এবং ব্যবহারকারীর সম্মতি পরিচালনা করে। ফলাফল হল একটি অনুমোদন কোড, যা অ্যাপ্লিকেশন একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেনের জন্য বিনিময় করতে পারে।

অ্যাপ্লিকেশনটিকে ভবিষ্যতে ব্যবহারের জন্য রিফ্রেশ টোকেন সংরক্ষণ করা উচিত এবং একটি Google API অ্যাক্সেস করতে অ্যাক্সেস টোকেন ব্যবহার করা উচিত। একবার অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলে, অ্যাপ্লিকেশনটি একটি নতুন পেতে রিফ্রেশ টোকেন ব্যবহার করে।

আপনার অ্যাপ্লিকেশন Google অনুমোদন সার্ভারে একটি টোকেন অনুরোধ পাঠায়, একটি অনুমোদন কোড গ্রহণ করে, একটি টোকেনের জন্য কোড বিনিময় করে এবং একটি Google API এন্ডপয়েন্ট কল করতে টোকেন ব্যবহার করে৷

বিস্তারিত জানার জন্য, ওয়েব সার্ভার অ্যাপ্লিকেশনের জন্য OAuth 2.0 ব্যবহার করা দেখুন।

ইনস্টল করা অ্যাপ্লিকেশন

Google OAuth 2.0 এন্ডপয়েন্ট কম্পিউটার, মোবাইল ডিভাইস এবং ট্যাবলেটের মতো ডিভাইসে ইনস্টল করা অ্যাপ্লিকেশনগুলিকে সমর্থন করে৷ আপনি যখন এর মাধ্যমে একটি ক্লায়েন্ট আইডি তৈরি করবেন Google API Console , নির্দিষ্ট করুন যে এটি একটি ইনস্টল করা অ্যাপ্লিকেশন, তারপর অ্যাপ্লিকেশন প্রকার হিসাবে Android, Chrome অ্যাপ, iOS, ইউনিভার্সাল উইন্ডোজ প্ল্যাটফর্ম (UWP), বা ডেস্কটপ অ্যাপ নির্বাচন করুন।

প্রক্রিয়াটির ফলে একটি ক্লায়েন্ট আইডি এবং কিছু ক্ষেত্রে, একটি ক্লায়েন্ট সিক্রেট, যা আপনি আপনার অ্যাপ্লিকেশনের সোর্স কোডে এম্বেড করেন। (এই প্রেক্ষাপটে, ক্লায়েন্টের গোপনীয়তা স্পষ্টতই একটি গোপন হিসাবে বিবেচিত হয় না।)

অনুমোদনের ক্রমটি শুরু হয় যখন আপনার অ্যাপ্লিকেশন একটি ব্রাউজারকে একটি Google URL এ পুনঃনির্দেশ করে; URL-এ ক্যোয়ারী প্যারামিটার রয়েছে যা অনুরোধ করা হচ্ছে অ্যাক্সেসের ধরন নির্দেশ করে। Google ব্যবহারকারীর প্রমাণীকরণ, সেশন নির্বাচন এবং ব্যবহারকারীর সম্মতি পরিচালনা করে। ফলাফল হল একটি অনুমোদন কোড, যা অ্যাপ্লিকেশন একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেনের জন্য বিনিময় করতে পারে।

অ্যাপ্লিকেশনটিকে ভবিষ্যতে ব্যবহারের জন্য রিফ্রেশ টোকেন সংরক্ষণ করা উচিত এবং একটি Google API অ্যাক্সেস করতে অ্যাক্সেস টোকেন ব্যবহার করা উচিত। একবার অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলে, অ্যাপ্লিকেশনটি একটি নতুন পেতে রিফ্রেশ টোকেন ব্যবহার করে।

আপনার অ্যাপ্লিকেশন Google অনুমোদন সার্ভারে একটি টোকেন অনুরোধ পাঠায়, একটি অনুমোদন কোড গ্রহণ করে, একটি টোকেনের জন্য কোড বিনিময় করে এবং একটি Google API এন্ডপয়েন্ট কল করতে টোকেন ব্যবহার করে৷

বিশদ বিবরণের জন্য, ইনস্টল করা অ্যাপ্লিকেশনগুলির জন্য OAuth 2.0 ব্যবহার করা দেখুন।

ক্লায়েন্ট-সাইড (জাভাস্ক্রিপ্ট) অ্যাপ্লিকেশন

Google OAuth 2.0 এন্ডপয়েন্ট জাভাস্ক্রিপ্ট অ্যাপ্লিকেশনগুলিকে সমর্থন করে যা ব্রাউজারে চলে৷

অনুমোদনের ক্রম শুরু হয় যখন আপনার অ্যাপ্লিকেশন একটি ব্রাউজারকে Google URL-এ পুনঃনির্দেশ করে; URL-এ ক্যোয়ারী প্যারামিটার রয়েছে যা অনুরোধ করা হচ্ছে অ্যাক্সেসের ধরন নির্দেশ করে। Google ব্যবহারকারীর প্রমাণীকরণ, সেশন নির্বাচন এবং ব্যবহারকারীর সম্মতি পরিচালনা করে।

ফলাফল হল একটি অ্যাক্সেস টোকেন, যা ক্লায়েন্টকে Google API অনুরোধে অন্তর্ভুক্ত করার আগে যাচাই করা উচিত। টোকেনের মেয়াদ শেষ হয়ে গেলে, অ্যাপ্লিকেশনটি প্রক্রিয়াটি পুনরাবৃত্তি করে।

আপনার JS অ্যাপ্লিকেশন Google অনুমোদন সার্ভারে একটি টোকেন অনুরোধ পাঠায়, একটি টোকেন গ্রহণ করে, টোকেনটি যাচাই করে এবং একটি Google API এন্ডপয়েন্ট কল করতে টোকেন ব্যবহার করে।

বিশদ বিবরণের জন্য, ক্লায়েন্ট-সাইড অ্যাপ্লিকেশনগুলির জন্য OAuth 2.0 ব্যবহার করা দেখুন।

সীমিত-ইনপুট ডিভাইসে অ্যাপ্লিকেশন

Google OAuth 2.0 এন্ডপয়েন্ট এমন অ্যাপ্লিকেশনগুলিকে সমর্থন করে যেগুলি সীমিত-ইনপুট ডিভাইস যেমন গেম কনসোল, ভিডিও ক্যামেরা এবং প্রিন্টারগুলিতে চলে৷

অনুমোদনের ক্রমটি একটি অনুমোদন কোডের জন্য একটি Google URL-এ একটি ওয়েব পরিষেবার অনুরোধ করে অ্যাপ্লিকেশনের সাথে শুরু হয়। প্রতিক্রিয়াটিতে একটি URL এবং একটি কোড সহ বেশ কয়েকটি পরামিতি রয়েছে যা অ্যাপ্লিকেশন ব্যবহারকারীকে দেখায়।

ব্যবহারকারী ডিভাইস থেকে URL এবং কোড পায়, তারপরে সমৃদ্ধ ইনপুট ক্ষমতা সহ একটি পৃথক ডিভাইস বা কম্পিউটারে স্যুইচ করে। ব্যবহারকারী একটি ব্রাউজার চালু করে, নির্দিষ্ট URL-এ নেভিগেট করে, লগ ইন করে এবং কোডটি প্রবেশ করে।

ইতিমধ্যে, অ্যাপ্লিকেশনটি একটি নির্দিষ্ট ব্যবধানে একটি Google URL পোল করে৷ ব্যবহারকারী অ্যাক্সেস অনুমোদন করার পরে, Google সার্ভারের প্রতিক্রিয়াতে একটি অ্যাক্সেস টোকেন এবং রিফ্রেশ টোকেন থাকে। অ্যাপ্লিকেশনটিকে ভবিষ্যতে ব্যবহারের জন্য রিফ্রেশ টোকেন সংরক্ষণ করা উচিত এবং একটি Google API অ্যাক্সেস করতে অ্যাক্সেস টোকেন ব্যবহার করা উচিত। একবার অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলে, অ্যাপ্লিকেশনটি একটি নতুন পেতে রিফ্রেশ টোকেন ব্যবহার করে।

ব্যবহারকারী একটি পৃথক ডিভাইসে লগ ইন করে যার একটি ব্রাউজার রয়েছে

বিশদ বিবরণের জন্য, ডিভাইসগুলির জন্য OAuth 2.0 ব্যবহার করা দেখুন।

পরিষেবা অ্যাকাউন্ট

Google API যেমন ভবিষ্যদ্বাণী API এবং Google ক্লাউড স্টোরেজ ব্যবহারকারীর তথ্য অ্যাক্সেস না করেই আপনার অ্যাপ্লিকেশনের পক্ষে কাজ করতে পারে৷ এই পরিস্থিতিতে আপনার আবেদনের API এর নিজস্ব পরিচয় প্রমাণ করতে হবে, কিন্তু ব্যবহারকারীর সম্মতির প্রয়োজন নেই। একইভাবে, এন্টারপ্রাইজ পরিস্থিতিতে, আপনার অ্যাপ্লিকেশন কিছু সম্পদে অর্পিত অ্যাক্সেসের অনুরোধ করতে পারে।

এই ধরনের সার্ভার-টু-সার্ভার ইন্টারঅ্যাকশনের জন্য আপনার একটি পরিষেবা অ্যাকাউন্ট প্রয়োজন, যেটি একটি অ্যাকাউন্ট যা আপনার অ্যাপ্লিকেশনের অন্তর্গত কোনো স্বতন্ত্র ব্যবহারকারীর পরিবর্তে। আপনার অ্যাপ্লিকেশন পরিষেবা অ্যাকাউন্টের হয়ে Google API-কে কল করে এবং ব্যবহারকারীর সম্মতির প্রয়োজন নেই৷ (অ-পরিষেবা-অ্যাকাউন্টের পরিস্থিতিতে, আপনার অ্যাপ্লিকেশনটি শেষ-ব্যবহারকারীদের পক্ষে Google API-কে কল করে এবং কখনও কখনও ব্যবহারকারীর সম্মতি প্রয়োজন হয়।)

একটি পরিষেবা অ্যাকাউন্টের শংসাপত্র, যা আপনি থেকে প্রাপ্ত Google API Console, একটি উত্পন্ন ইমেল ঠিকানা অন্তর্ভুক্ত করুন যা অনন্য, একটি ক্লায়েন্ট আইডি, এবং কমপক্ষে একটি সর্বজনীন/ব্যক্তিগত কী জোড়া। আপনি একটি স্বাক্ষরিত JWT তৈরি করতে এবং উপযুক্ত বিন্যাসে একটি অ্যাক্সেস-টোকেন অনুরোধ তৈরি করতে ক্লায়েন্ট আইডি এবং একটি ব্যক্তিগত কী ব্যবহার করেন। আপনার অ্যাপ্লিকেশন তারপর Google OAuth 2.0 অনুমোদন সার্ভারে টোকেন অনুরোধ পাঠায়, যা একটি অ্যাক্সেস টোকেন ফেরত দেয়। অ্যাপ্লিকেশনটি একটি Google API অ্যাক্সেস করতে টোকেন ব্যবহার করে। টোকেনের মেয়াদ শেষ হয়ে গেলে, অ্যাপ্লিকেশনটি প্রক্রিয়াটি পুনরাবৃত্তি করে।

আপনার সার্ভার অ্যাপ্লিকেশন Google অনুমোদন সার্ভার থেকে একটি টোকেন অনুরোধ করতে একটি JWT ব্যবহার করে, তারপর একটি Google API এন্ডপয়েন্ট কল করতে টোকেন ব্যবহার করে। কোন শেষ ব্যবহারকারী জড়িত নয়.

বিস্তারিত জানার জন্য, পরিষেবা-অ্যাকাউন্ট ডকুমেন্টেশন দেখুন।

টোকেনের আকার

টোকেন আকারে পরিবর্তিত হতে পারে, নিম্নলিখিত সীমা পর্যন্ত:

  • অনুমোদন কোড: 256 বাইট
  • অ্যাক্সেস টোকেন: 2048 বাইট
  • রিফ্রেশ টোকেন: 512 বাইট

Google ক্লাউডের নিরাপত্তা টোকেন পরিষেবা API দ্বারা প্রত্যাবর্তিত অ্যাক্সেস টোকেনগুলি Google API OAuth 2.0 অ্যাক্সেস টোকেনগুলির অনুরূপভাবে গঠন করা হয় তবে বিভিন্ন টোকেন আকারের সীমা রয়েছে৷ বিস্তারিত জানার জন্য, API ডকুমেন্টেশন দেখুন।

Google এই সীমার মধ্যে টোকেনের আকার পরিবর্তন করার অধিকার সংরক্ষণ করে, এবং আপনার আবেদন অবশ্যই সেই অনুযায়ী পরিবর্তনশীল টোকেন আকার সমর্থন করবে৷

রিফ্রেশ টোকেন মেয়াদ শেষ

একটি মঞ্জুর করা রিফ্রেশ টোকেন আর কাজ নাও করতে পারে সেই সম্ভাবনার জন্য আপনাকে অবশ্যই আপনার কোড লিখতে হবে। একটি রিফ্রেশ টোকেন এই কারণগুলির মধ্যে একটির জন্য কাজ করা বন্ধ করতে পারে:

একটি বহিরাগত ব্যবহারকারীর প্রকারের জন্য কনফিগার করা OAuth সম্মতি স্ক্রীন সহ একটি Google ক্লাউড প্ল্যাটফর্ম প্রকল্প এবং "টেস্টিং" এর একটি প্রকাশনার স্থিতি 7 দিনের মধ্যে একটি রিফ্রেশ টোকেন জারি করা হয়, যদি না অনুরোধ করা শুধুমাত্র OAuth স্কোপের নাম, ইমেল ঠিকানা এবং একটি উপসেট হয় ব্যবহারকারীর প্রোফাইল ( userinfo.email, userinfo.profile, openid স্কোপ, অথবা তাদের OpenID Connect সমতুল্যের মাধ্যমে)।

বর্তমানে প্রতি OAuth 2.0 ক্লায়েন্ট আইডি প্রতি Google অ্যাকাউন্টে 100টি রিফ্রেশ টোকেনের সীমা রয়েছে। সীমা পৌঁছে গেলে, একটি নতুন রিফ্রেশ টোকেন তৈরি করা স্বয়ংক্রিয়ভাবে পূর্ববর্তী রিফ্রেশ টোকেনটিকে সতর্কতা ছাড়াই বাতিল করে দেয়। এই সীমা পরিষেবা অ্যাকাউন্টের ক্ষেত্রে প্রযোজ্য নয়।

একটি ব্যবহারকারীর অ্যাকাউন্ট বা পরিষেবা অ্যাকাউন্টের সমস্ত ক্লায়েন্ট জুড়ে থাকা রিফ্রেশ টোকেনের মোট সংখ্যার একটি বড় সীমাও রয়েছে। বেশিরভাগ সাধারণ ব্যবহারকারী এই সীমা অতিক্রম করবে না কিন্তু একটি বিকাশকারীর অ্যাকাউন্ট একটি বাস্তবায়ন পরীক্ষা করতে ব্যবহৃত হতে পারে।

আপনি যদি একাধিক প্রোগ্রাম, মেশিন বা ডিভাইস অনুমোদন করতে চান, তাহলে একটি সমাধান হল আপনি প্রতি Google অ্যাকাউন্টে অনুমোদিত ক্লায়েন্টের সংখ্যা 15 বা 20-এর মধ্যে সীমাবদ্ধ করুন। আপনি যদি একজন Google Workspace অ্যাডমিন হন, তাহলে আপনি প্রশাসনিক সুবিধা সহ অতিরিক্ত ব্যবহারকারী তৈরি করতে পারেন এবং ক্লায়েন্টদের কিছু অনুমোদন করতে তাদের ব্যবহার করুন।

Google ক্লাউড প্ল্যাটফর্ম (GCP) সংস্থাগুলির জন্য সেশন নিয়ন্ত্রণ নীতিগুলি নিয়ে কাজ করা৷

GCP সংস্থার অ্যাডমিনিস্ট্রেটররা Google ক্লাউড সেশন কন্ট্রোল বৈশিষ্ট্য ব্যবহার করে GCP সংস্থানগুলি অ্যাক্সেস করার সময় ব্যবহারকারীদের ঘন ঘন পুনরায় প্রমাণীকরণের প্রয়োজন হতে পারে৷ এই নীতিটি Google ক্লাউড কনসোল, Google ক্লাউড SDK (জিক্লাউড CLI নামেও পরিচিত), এবং ক্লাউড প্ল্যাটফর্ম স্কোপের প্রয়োজন এমন যেকোনো তৃতীয় পক্ষের OAuth অ্যাপ্লিকেশনের অ্যাক্সেসকে প্রভাবিত করে৷ যদি কোনও ব্যবহারকারীর একটি সেশন নিয়ন্ত্রণ নীতি থাকে তবে সেশনের মেয়াদ শেষ হওয়ার পরে, আপনার API কলগুলি রিফ্রেশ টোকেন প্রত্যাহার করা হলে যা ঘটবে তার অনুরূপ ত্রুটি হবে - কলটি একটি ত্রুটির প্রকারের সাথে ব্যর্থ হবে invalid_grant ; error_subtype ক্ষেত্রটি একটি প্রত্যাহার করা টোকেন এবং একটি সেশন নিয়ন্ত্রণ নীতির কারণে ব্যর্থতার মধ্যে পার্থক্য করতে ব্যবহার করা যেতে পারে (উদাহরণস্বরূপ, "error_subtype": "invalid_rapt" )। যেহেতু সেশনের সময়কাল খুব সীমিত হতে পারে (1 ঘন্টা থেকে 24 ঘন্টার মধ্যে), এই দৃশ্যটি অবশ্যই একটি প্রমাণীকরণ সেশন পুনরায় আরম্ভ করার মাধ্যমে সুন্দরভাবে পরিচালনা করা উচিত।

সমানভাবে, আপনি সার্ভার-টু-সার্ভার স্থাপনার জন্য ব্যবহারকারীর শংসাপত্র ব্যবহার বা উৎসাহিত করবেন না। যদি ব্যবহারকারীর শংসাপত্রগুলি দীর্ঘদিন ধরে চলমান চাকরি বা ক্রিয়াকলাপের জন্য সার্ভারে স্থাপন করা হয় এবং একজন গ্রাহক এই ধরনের ব্যবহারকারীদের উপর সেশন নিয়ন্ত্রণ নীতি প্রয়োগ করে, তাহলে সার্ভার অ্যাপ্লিকেশন ব্যর্থ হবে কারণ সেশনের মেয়াদ শেষ হয়ে গেলে ব্যবহারকারীকে পুনরায় প্রমাণীকরণ করার কোনো উপায় থাকবে না।

কীভাবে আপনার গ্রাহকদের এই বৈশিষ্ট্যটি স্থাপনে সহায়তা করবেন সে সম্পর্কে আরও তথ্যের জন্য, এই প্রশাসক-কেন্দ্রিক সহায়তা নিবন্ধটি পড়ুন।

ক্লায়েন্ট লাইব্রেরি

নিম্নলিখিত ক্লায়েন্ট লাইব্রেরিগুলি জনপ্রিয় ফ্রেমওয়ার্কগুলির সাথে একীভূত হয়, যা OAuth 2.0 বাস্তবায়নকে আরও সহজ করে তোলে। সময়ের সাথে সাথে গ্রন্থাগারগুলিতে আরও বৈশিষ্ট্য যুক্ত করা হবে।

,

Google APIগুলি প্রমাণীকরণ এবং অনুমোদনের জন্য OAuth 2.0 প্রোটোকল ব্যবহার করে৷ Google সাধারণ OAuth 2.0 পরিস্থিতিগুলিকে সমর্থন করে যেমন ওয়েব সার্ভার, ক্লায়েন্ট-সাইড, ইনস্টল করা এবং সীমিত-ইনপুট ডিভাইস অ্যাপ্লিকেশনগুলির জন্য।

শুরু করতে, থেকে OAuth 2.0 ক্লায়েন্ট শংসাপত্রগুলি পান৷ Google API Console . তারপর আপনার ক্লায়েন্ট অ্যাপ্লিকেশন Google অনুমোদন সার্ভার থেকে একটি অ্যাক্সেস টোকেন অনুরোধ করে, প্রতিক্রিয়া থেকে একটি টোকেন বের করে এবং আপনি যে Google API-এ অ্যাক্সেস করতে চান সেটিকে টোকেন পাঠায়। Google এর সাথে OAuth 2.0 ব্যবহার করার একটি ইন্টারেক্টিভ প্রদর্শনের জন্য (আপনার নিজস্ব ক্লায়েন্ট শংসাপত্রগুলি ব্যবহার করার বিকল্প সহ), OAuth 2.0 প্লেগ্রাউন্ডের সাথে পরীক্ষা করুন৷

এই পৃষ্ঠাটি OAuth 2.0 অনুমোদনের পরিস্থিতিগুলির একটি ওভারভিউ দেয় যা Google সমর্থন করে এবং আরও বিস্তারিত বিষয়বস্তুর লিঙ্ক প্রদান করে। প্রমাণীকরণের জন্য OAuth 2.0 ব্যবহার সম্পর্কে বিস্তারিত জানার জন্য, OpenID Connect দেখুন।

মৌলিক পদক্ষেপ

OAuth 2.0 ব্যবহার করে Google API অ্যাক্সেস করার সময় সমস্ত অ্যাপ্লিকেশন একটি মৌলিক প্যাটার্ন অনুসরণ করে। একটি উচ্চ স্তরে, আপনি পাঁচটি ধাপ অনুসরণ করুন:

1. থেকে OAuth 2.0 শংসাপত্রগুলি পান৷ Google API Console.

ভিজিট করুন Google API Console OAuth 2.0 শংসাপত্র যেমন একটি ক্লায়েন্ট আইডি এবং ক্লায়েন্ট গোপন যা Google এবং আপনার অ্যাপ্লিকেশন উভয়ের কাছেই পরিচিত। আপনি কি ধরণের অ্যাপ্লিকেশন তৈরি করছেন তার উপর ভিত্তি করে মানগুলির সেট পরিবর্তিত হয়। উদাহরণস্বরূপ, একটি জাভাস্ক্রিপ্ট অ্যাপ্লিকেশন একটি গোপন প্রয়োজন হয় না, কিন্তু একটি ওয়েব সার্ভার অ্যাপ্লিকেশন আছে.

আপনার অ্যাপটি যে প্ল্যাটফর্মে চলবে তার জন্য আপনাকে অবশ্যই উপযুক্ত একটি OAuth ক্লায়েন্ট তৈরি করতে হবে, উদাহরণস্বরূপ:

2. Google অনুমোদন সার্ভার থেকে একটি অ্যাক্সেস টোকেন পান৷

আপনার অ্যাপ্লিকেশন একটি Google API ব্যবহার করে ব্যক্তিগত ডেটা অ্যাক্সেস করার আগে, এটিকে অবশ্যই একটি অ্যাক্সেস টোকেন পেতে হবে যা সেই API-তে অ্যাক্সেস মঞ্জুর করে৷ একটি একক অ্যাক্সেস টোকেন একাধিক API-তে বিভিন্ন মাত্রার অ্যাক্সেস মঞ্জুর করতে পারে। scope নামক একটি পরিবর্তনশীল প্যারামিটার সম্পদ এবং ক্রিয়াকলাপগুলির সেট নিয়ন্ত্রণ করে যা একটি অ্যাক্সেস টোকেন অনুমতি দেয়। অ্যাক্সেস-টোকেন অনুরোধের সময়, আপনার অ্যাপ্লিকেশন scope প্যারামিটারে এক বা একাধিক মান পাঠায়।

এই অনুরোধ করার বিভিন্ন উপায় রয়েছে এবং আপনি যে ধরনের অ্যাপ্লিকেশন তৈরি করছেন তার উপর ভিত্তি করে সেগুলি পরিবর্তিত হয়। উদাহরণস্বরূপ, একটি জাভাস্ক্রিপ্ট অ্যাপ্লিকেশন Google-এ একটি ব্রাউজার রিডাইরেক্ট ব্যবহার করে একটি অ্যাক্সেস টোকেনের অনুরোধ করতে পারে, যখন কোনো ব্রাউজার নেই এমন ডিভাইসে ইনস্টল করা একটি অ্যাপ্লিকেশন ওয়েব পরিষেবার অনুরোধ ব্যবহার করে।

কিছু অনুরোধের জন্য একটি প্রমাণীকরণ পদক্ষেপ প্রয়োজন যেখানে ব্যবহারকারী তাদের Google অ্যাকাউন্ট দিয়ে লগ ইন করে। লগ ইন করার পরে, ব্যবহারকারীকে জিজ্ঞাসা করা হয় যে তারা আপনার আবেদনের জন্য অনুরোধ করা এক বা একাধিক অনুমতি দিতে ইচ্ছুক কিনা। এই প্রক্রিয়াটিকে ব্যবহারকারীর সম্মতি বলা হয়।

যদি ব্যবহারকারী কমপক্ষে একটি অনুমতি দেয়, Google অনুমোদন সার্ভার আপনার অ্যাপ্লিকেশনটিকে একটি অ্যাক্সেস টোকেন (বা একটি অনুমোদন কোড যা আপনার অ্যাপ্লিকেশনটি একটি অ্যাক্সেস টোকেন পেতে ব্যবহার করতে পারে) এবং সেই টোকেন দ্বারা প্রদত্ত অ্যাক্সেসের সুযোগগুলির একটি তালিকা পাঠায়। ব্যবহারকারী অনুমতি না দিলে, সার্ভার একটি ত্রুটি ফেরত দেয়।

ক্রমবর্ধমানভাবে স্কোপের অনুরোধ করা একটি সর্বোত্তম অভ্যাস, যখন অ্যাক্সেসের প্রয়োজন হয়, সামনের পরিবর্তে। উদাহরণস্বরূপ, একটি অ্যাপ যেটি একটি ইভেন্টকে একটি ক্যালেন্ডারে সংরক্ষণ করা সমর্থন করতে চায় তার Google ক্যালেন্ডার অ্যাক্সেসের অনুরোধ করা উচিত নয় যতক্ষণ না ব্যবহারকারী "ক্যালেন্ডারে যোগ করুন" বোতাম টিপে; ক্রমবর্ধমান অনুমোদন দেখুন।

3. ব্যবহারকারী দ্বারা প্রদত্ত অ্যাক্সেসের সুযোগগুলি পরীক্ষা করুন৷

একটি সম্পর্কিত Google API অ্যাক্সেসের উপর নির্ভর করে আপনার অ্যাপ্লিকেশনের বৈশিষ্ট্য এবং কার্যকারিতা অ্যাক্সেস করার জন্য প্রয়োজনীয় স্কোপের সাথে অ্যাক্সেস টোকেন প্রতিক্রিয়াতে অন্তর্ভুক্ত স্কোপের তুলনা করুন। সম্পর্কিত API অ্যাক্সেস ছাড়া কাজ করতে অক্ষম আপনার অ্যাপের কোনো বৈশিষ্ট্য অক্ষম করুন।

আপনার অনুরোধে অন্তর্ভুক্ত সুযোগ আপনার প্রতিক্রিয়াতে অন্তর্ভুক্ত সুযোগের সাথে নাও মিলতে পারে, এমনকি যদি ব্যবহারকারী অনুরোধ করা সমস্ত সুযোগ প্রদান করে থাকে। অ্যাক্সেসের জন্য প্রয়োজনীয় স্কোপের জন্য প্রতিটি Google API-এর ডকুমেন্টেশন পড়ুন। একটি API একাধিক স্কোপ স্ট্রিং মানগুলিকে অ্যাক্সেসের একক সুযোগে ম্যাপ করতে পারে, অনুরোধে অনুমোদিত সমস্ত মানগুলির জন্য একই স্কোপ স্ট্রিং ফেরত দেয়৷ উদাহরণ: Google People API https://www.googleapis.com/auth/contacts এর একটি স্কোপ ফেরত দিতে পারে যখন কোনো অ্যাপ ব্যবহারকারীকে অনুরোধ করে https://www.google.com/m8/feeds/ ; Google People API পদ্ধতি people.updateContact এর জন্য https://www.googleapis.com/auth/contacts এর একটি প্রদত্ত সুযোগ প্রয়োজন।

4. একটি API এ অ্যাক্সেস টোকেন পাঠান।

একটি অ্যাপ্লিকেশন একটি অ্যাক্সেস টোকেন পাওয়ার পরে, এটি একটি HTTP অনুমোদন অনুরোধ শিরোনামে একটি Google API এ টোকেন পাঠায়। URI ক্যোয়ারী-স্ট্রিং প্যারামিটার হিসাবে টোকেন পাঠানো সম্ভব, কিন্তু আমরা এটি সুপারিশ করি না, কারণ URI প্যারামিটারগুলি লগ ফাইলগুলিতে শেষ হতে পারে যেগুলি সম্পূর্ণ সুরক্ষিত নয়৷ এছাড়াও, অপ্রয়োজনীয় URI প্যারামিটার নাম তৈরি করা এড়াতে REST অনুশীলন করা ভাল।

অ্যাক্সেস টোকেন শুধুমাত্র টোকেন অনুরোধের scope বর্ণিত ক্রিয়াকলাপ এবং সংস্থানগুলির সেটের জন্য বৈধ। উদাহরণস্বরূপ, যদি Google ক্যালেন্ডার API-এর জন্য একটি অ্যাক্সেস টোকেন জারি করা হয়, তবে এটি Google পরিচিতি API-তে অ্যাক্সেস দেয় না। আপনি, যাইহোক, অনুরূপ ক্রিয়াকলাপের জন্য একাধিকবার Google ক্যালেন্ডার API-এ সেই অ্যাক্সেস টোকেনটি পাঠাতে পারেন।

5. প্রয়োজনে অ্যাক্সেস টোকেন রিফ্রেশ করুন।

অ্যাক্সেস টোকেন সীমিত জীবনকাল আছে. আপনার অ্যাপ্লিকেশানের যদি একটি একক অ্যাক্সেস টোকেনের জীবনকালের বাইরে একটি Google API-এ অ্যাক্সেসের প্রয়োজন হয়, তবে এটি একটি রিফ্রেশ টোকেন পেতে পারে। একটি রিফ্রেশ টোকেন আপনার অ্যাপ্লিকেশনকে নতুন অ্যাক্সেস টোকেন পেতে অনুমতি দেয়।

দৃশ্যকল্প

ওয়েব সার্ভার অ্যাপ্লিকেশন

Google OAuth 2.0 এন্ডপয়েন্ট ওয়েব সার্ভার অ্যাপ্লিকেশনগুলিকে সমর্থন করে যেগুলি ভাষা এবং ফ্রেমওয়ার্ক যেমন PHP, Java, Go, Python, Ruby এবং ASP.NET ব্যবহার করে৷

অনুমোদনের ক্রমটি শুরু হয় যখন আপনার অ্যাপ্লিকেশন একটি ব্রাউজারকে একটি Google URL এ পুনঃনির্দেশ করে; URL-এ ক্যোয়ারী প্যারামিটার রয়েছে যা অনুরোধ করা হচ্ছে অ্যাক্সেসের ধরন নির্দেশ করে। Google ব্যবহারকারীর প্রমাণীকরণ, সেশন নির্বাচন এবং ব্যবহারকারীর সম্মতি পরিচালনা করে। ফলাফল হল একটি অনুমোদন কোড, যা অ্যাপ্লিকেশন একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেনের জন্য বিনিময় করতে পারে।

অ্যাপ্লিকেশনটিকে ভবিষ্যতে ব্যবহারের জন্য রিফ্রেশ টোকেন সংরক্ষণ করা উচিত এবং একটি Google API অ্যাক্সেস করতে অ্যাক্সেস টোকেন ব্যবহার করা উচিত। একবার অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলে, অ্যাপ্লিকেশনটি একটি নতুন পেতে রিফ্রেশ টোকেন ব্যবহার করে।

আপনার অ্যাপ্লিকেশন Google অনুমোদন সার্ভারে একটি টোকেন অনুরোধ পাঠায়, একটি অনুমোদন কোড গ্রহণ করে, একটি টোকেনের জন্য কোড বিনিময় করে এবং একটি Google API এন্ডপয়েন্ট কল করতে টোকেন ব্যবহার করে৷

বিস্তারিত জানার জন্য, ওয়েব সার্ভার অ্যাপ্লিকেশনের জন্য OAuth 2.0 ব্যবহার করা দেখুন।

ইনস্টল করা অ্যাপ্লিকেশন

Google OAuth 2.0 এন্ডপয়েন্ট কম্পিউটার, মোবাইল ডিভাইস এবং ট্যাবলেটের মতো ডিভাইসে ইনস্টল করা অ্যাপ্লিকেশনগুলিকে সমর্থন করে৷ আপনি যখন এর মাধ্যমে একটি ক্লায়েন্ট আইডি তৈরি করবেন Google API Console , নির্দিষ্ট করুন যে এটি একটি ইনস্টল করা অ্যাপ্লিকেশন, তারপর অ্যাপ্লিকেশন প্রকার হিসাবে Android, Chrome অ্যাপ, iOS, ইউনিভার্সাল উইন্ডোজ প্ল্যাটফর্ম (UWP), বা ডেস্কটপ অ্যাপ নির্বাচন করুন।

প্রক্রিয়াটির ফলে একটি ক্লায়েন্ট আইডি এবং কিছু ক্ষেত্রে, একটি ক্লায়েন্ট সিক্রেট, যা আপনি আপনার অ্যাপ্লিকেশনের সোর্স কোডে এম্বেড করেন। (এই প্রেক্ষাপটে, ক্লায়েন্টের গোপনীয়তা স্পষ্টতই একটি গোপন হিসাবে বিবেচিত হয় না।)

অনুমোদনের ক্রমটি শুরু হয় যখন আপনার অ্যাপ্লিকেশন একটি ব্রাউজারকে একটি Google URL এ পুনঃনির্দেশ করে; URL-এ ক্যোয়ারী প্যারামিটার রয়েছে যা অনুরোধ করা হচ্ছে অ্যাক্সেসের ধরন নির্দেশ করে। Google ব্যবহারকারীর প্রমাণীকরণ, সেশন নির্বাচন এবং ব্যবহারকারীর সম্মতি পরিচালনা করে। ফলাফল হল একটি অনুমোদন কোড, যা অ্যাপ্লিকেশন একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেনের জন্য বিনিময় করতে পারে।

অ্যাপ্লিকেশনটিকে ভবিষ্যতে ব্যবহারের জন্য রিফ্রেশ টোকেন সংরক্ষণ করা উচিত এবং একটি Google API অ্যাক্সেস করতে অ্যাক্সেস টোকেন ব্যবহার করা উচিত। একবার অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলে, অ্যাপ্লিকেশনটি একটি নতুন পেতে রিফ্রেশ টোকেন ব্যবহার করে।

আপনার অ্যাপ্লিকেশন Google অনুমোদন সার্ভারে একটি টোকেন অনুরোধ পাঠায়, একটি অনুমোদন কোড গ্রহণ করে, একটি টোকেনের জন্য কোড বিনিময় করে এবং একটি Google API এন্ডপয়েন্ট কল করতে টোকেন ব্যবহার করে৷

বিশদ বিবরণের জন্য, ইনস্টল করা অ্যাপ্লিকেশনগুলির জন্য OAuth 2.0 ব্যবহার করা দেখুন।

ক্লায়েন্ট-সাইড (জাভাস্ক্রিপ্ট) অ্যাপ্লিকেশন

Google OAuth 2.0 এন্ডপয়েন্ট জাভাস্ক্রিপ্ট অ্যাপ্লিকেশনগুলিকে সমর্থন করে যা ব্রাউজারে চলে৷

অনুমোদনের ক্রম শুরু হয় যখন আপনার অ্যাপ্লিকেশন একটি ব্রাউজারকে Google URL-এ পুনঃনির্দেশ করে; URL-এ ক্যোয়ারী প্যারামিটার রয়েছে যা অনুরোধ করা হচ্ছে অ্যাক্সেসের ধরন নির্দেশ করে। Google ব্যবহারকারীর প্রমাণীকরণ, সেশন নির্বাচন এবং ব্যবহারকারীর সম্মতি পরিচালনা করে।

ফলাফল হল একটি অ্যাক্সেস টোকেন, যা ক্লায়েন্টকে Google API অনুরোধে অন্তর্ভুক্ত করার আগে যাচাই করা উচিত। টোকেনের মেয়াদ শেষ হয়ে গেলে, অ্যাপ্লিকেশনটি প্রক্রিয়াটি পুনরাবৃত্তি করে।

আপনার JS অ্যাপ্লিকেশন Google অনুমোদন সার্ভারে একটি টোকেন অনুরোধ পাঠায়, একটি টোকেন গ্রহণ করে, টোকেনটি যাচাই করে এবং একটি Google API এন্ডপয়েন্ট কল করতে টোকেন ব্যবহার করে।

বিশদ বিবরণের জন্য, ক্লায়েন্ট-সাইড অ্যাপ্লিকেশনগুলির জন্য OAuth 2.0 ব্যবহার করা দেখুন।

সীমিত-ইনপুট ডিভাইসে অ্যাপ্লিকেশন

Google OAuth 2.0 এন্ডপয়েন্ট এমন অ্যাপ্লিকেশনগুলিকে সমর্থন করে যেগুলি সীমিত-ইনপুট ডিভাইস যেমন গেম কনসোল, ভিডিও ক্যামেরা এবং প্রিন্টারগুলিতে চলে৷

অনুমোদনের ক্রমটি একটি অনুমোদন কোডের জন্য একটি Google URL-এ একটি ওয়েব পরিষেবার অনুরোধ করে অ্যাপ্লিকেশনের সাথে শুরু হয়। প্রতিক্রিয়াটিতে একটি URL এবং একটি কোড সহ বেশ কয়েকটি পরামিতি রয়েছে যা অ্যাপ্লিকেশন ব্যবহারকারীকে দেখায়।

ব্যবহারকারী ডিভাইস থেকে URL এবং কোড পায়, তারপরে সমৃদ্ধ ইনপুট ক্ষমতা সহ একটি পৃথক ডিভাইস বা কম্পিউটারে স্যুইচ করে। ব্যবহারকারী একটি ব্রাউজার চালু করে, নির্দিষ্ট URL-এ নেভিগেট করে, লগ ইন করে এবং কোডটি প্রবেশ করে।

ইতিমধ্যে, অ্যাপ্লিকেশনটি একটি নির্দিষ্ট ব্যবধানে একটি Google URL পোল করে৷ ব্যবহারকারী অ্যাক্সেস অনুমোদন করার পরে, Google সার্ভারের প্রতিক্রিয়াতে একটি অ্যাক্সেস টোকেন এবং রিফ্রেশ টোকেন থাকে। অ্যাপ্লিকেশনটিকে ভবিষ্যতে ব্যবহারের জন্য রিফ্রেশ টোকেন সংরক্ষণ করা উচিত এবং একটি Google API অ্যাক্সেস করতে অ্যাক্সেস টোকেন ব্যবহার করা উচিত। একবার অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলে, অ্যাপ্লিকেশনটি একটি নতুন পেতে রিফ্রেশ টোকেন ব্যবহার করে।

ব্যবহারকারী একটি পৃথক ডিভাইসে লগ ইন করে যার একটি ব্রাউজার রয়েছে

বিশদ বিবরণের জন্য, ডিভাইসগুলির জন্য OAuth 2.0 ব্যবহার করা দেখুন।

পরিষেবা অ্যাকাউন্ট

Google API যেমন ভবিষ্যদ্বাণী API এবং Google ক্লাউড স্টোরেজ ব্যবহারকারীর তথ্য অ্যাক্সেস না করেই আপনার অ্যাপ্লিকেশনের পক্ষে কাজ করতে পারে৷ এই পরিস্থিতিতে আপনার আবেদনের API এর নিজস্ব পরিচয় প্রমাণ করতে হবে, কিন্তু ব্যবহারকারীর সম্মতির প্রয়োজন নেই। একইভাবে, এন্টারপ্রাইজ পরিস্থিতিতে, আপনার অ্যাপ্লিকেশন কিছু সম্পদে অর্পিত অ্যাক্সেসের অনুরোধ করতে পারে।

এই ধরনের সার্ভার-টু-সার্ভার ইন্টারঅ্যাকশনের জন্য আপনার একটি পরিষেবা অ্যাকাউন্ট প্রয়োজন, যেটি একটি অ্যাকাউন্ট যা আপনার অ্যাপ্লিকেশনের অন্তর্গত কোনো স্বতন্ত্র ব্যবহারকারীর পরিবর্তে। আপনার অ্যাপ্লিকেশন পরিষেবা অ্যাকাউন্টের হয়ে Google API-কে কল করে এবং ব্যবহারকারীর সম্মতির প্রয়োজন নেই৷ (অ-পরিষেবা-অ্যাকাউন্টের পরিস্থিতিতে, আপনার অ্যাপ্লিকেশনটি শেষ-ব্যবহারকারীদের পক্ষে Google API-কে কল করে এবং কখনও কখনও ব্যবহারকারীর সম্মতি প্রয়োজন হয়।)

একটি পরিষেবা অ্যাকাউন্টের শংসাপত্র, যা আপনি থেকে প্রাপ্ত Google API Console, একটি উত্পন্ন ইমেল ঠিকানা অন্তর্ভুক্ত করুন যা অনন্য, একটি ক্লায়েন্ট আইডি, এবং কমপক্ষে একটি সর্বজনীন/ব্যক্তিগত কী জোড়া। আপনি একটি স্বাক্ষরিত JWT তৈরি করতে এবং উপযুক্ত বিন্যাসে একটি অ্যাক্সেস-টোকেন অনুরোধ তৈরি করতে ক্লায়েন্ট আইডি এবং একটি ব্যক্তিগত কী ব্যবহার করেন। আপনার অ্যাপ্লিকেশন তারপর Google OAuth 2.0 অনুমোদন সার্ভারে টোকেন অনুরোধ পাঠায়, যা একটি অ্যাক্সেস টোকেন ফেরত দেয়। অ্যাপ্লিকেশনটি একটি Google API অ্যাক্সেস করতে টোকেন ব্যবহার করে। টোকেনের মেয়াদ শেষ হয়ে গেলে, অ্যাপ্লিকেশনটি প্রক্রিয়াটি পুনরাবৃত্তি করে।

আপনার সার্ভার অ্যাপ্লিকেশন Google অনুমোদন সার্ভার থেকে একটি টোকেন অনুরোধ করতে একটি JWT ব্যবহার করে, তারপর একটি Google API এন্ডপয়েন্ট কল করতে টোকেন ব্যবহার করে। কোন শেষ ব্যবহারকারী জড়িত নয়.

বিস্তারিত জানার জন্য, পরিষেবা-অ্যাকাউন্ট ডকুমেন্টেশন দেখুন।

টোকেনের আকার

টোকেন আকারে পরিবর্তিত হতে পারে, নিম্নলিখিত সীমা পর্যন্ত:

  • অনুমোদন কোড: 256 বাইট
  • অ্যাক্সেস টোকেন: 2048 বাইট
  • রিফ্রেশ টোকেন: 512 বাইট

Google ক্লাউডের নিরাপত্তা টোকেন পরিষেবা API দ্বারা প্রত্যাবর্তিত অ্যাক্সেস টোকেনগুলি Google API OAuth 2.0 অ্যাক্সেস টোকেনগুলির অনুরূপভাবে গঠন করা হয় তবে বিভিন্ন টোকেন আকারের সীমা রয়েছে৷ বিস্তারিত জানার জন্য, API ডকুমেন্টেশন দেখুন।

Google এই সীমার মধ্যে টোকেনের আকার পরিবর্তন করার অধিকার সংরক্ষণ করে, এবং আপনার আবেদন অবশ্যই সেই অনুযায়ী পরিবর্তনশীল টোকেন আকার সমর্থন করবে৷

রিফ্রেশ টোকেন মেয়াদ শেষ

একটি মঞ্জুর করা রিফ্রেশ টোকেন আর কাজ নাও করতে পারে সেই সম্ভাবনার জন্য আপনাকে অবশ্যই আপনার কোড লিখতে হবে। একটি রিফ্রেশ টোকেন এই কারণগুলির মধ্যে একটির জন্য কাজ করা বন্ধ করতে পারে:

একটি বহিরাগত ব্যবহারকারীর প্রকারের জন্য কনফিগার করা OAuth সম্মতি স্ক্রীন সহ একটি Google ক্লাউড প্ল্যাটফর্ম প্রকল্প এবং "টেস্টিং" এর একটি প্রকাশনার স্থিতি 7 দিনের মধ্যে একটি রিফ্রেশ টোকেন জারি করা হয়, যদি না অনুরোধ করা শুধুমাত্র OAuth স্কোপের নাম, ইমেল ঠিকানা এবং একটি উপসেট হয় ব্যবহারকারীর প্রোফাইল ( userinfo.email, userinfo.profile, openid স্কোপ, অথবা তাদের OpenID Connect সমতুল্যের মাধ্যমে)।

বর্তমানে প্রতি OAuth 2.0 ক্লায়েন্ট আইডি প্রতি Google অ্যাকাউন্টে 100টি রিফ্রেশ টোকেনের সীমা রয়েছে। সীমা পৌঁছে গেলে, একটি নতুন রিফ্রেশ টোকেন তৈরি করা স্বয়ংক্রিয়ভাবে পূর্ববর্তী রিফ্রেশ টোকেনটিকে সতর্কতা ছাড়াই বাতিল করে দেয়। এই সীমা পরিষেবা অ্যাকাউন্টের ক্ষেত্রে প্রযোজ্য নয়।

একটি ব্যবহারকারীর অ্যাকাউন্ট বা পরিষেবা অ্যাকাউন্টের সমস্ত ক্লায়েন্ট জুড়ে থাকা রিফ্রেশ টোকেনের মোট সংখ্যার একটি বড় সীমাও রয়েছে। বেশিরভাগ সাধারণ ব্যবহারকারী এই সীমা অতিক্রম করবে না কিন্তু একটি বিকাশকারীর অ্যাকাউন্ট একটি বাস্তবায়ন পরীক্ষা করতে ব্যবহৃত হতে পারে।

আপনি যদি একাধিক প্রোগ্রাম, মেশিন বা ডিভাইস অনুমোদন করতে চান, তাহলে একটি সমাধান হল আপনি প্রতি Google অ্যাকাউন্টে অনুমোদিত ক্লায়েন্টের সংখ্যা 15 বা 20-এর মধ্যে সীমাবদ্ধ করুন। আপনি যদি একজন Google Workspace অ্যাডমিন হন, তাহলে আপনি প্রশাসনিক সুবিধা সহ অতিরিক্ত ব্যবহারকারী তৈরি করতে পারেন এবং ক্লায়েন্টদের কিছু অনুমোদন করতে তাদের ব্যবহার করুন।

Google ক্লাউড প্ল্যাটফর্ম (GCP) সংস্থাগুলির জন্য সেশন নিয়ন্ত্রণ নীতিগুলি নিয়ে কাজ করা৷

GCP সংস্থার অ্যাডমিনিস্ট্রেটররা Google ক্লাউড সেশন কন্ট্রোল বৈশিষ্ট্য ব্যবহার করে GCP সংস্থানগুলি অ্যাক্সেস করার সময় ব্যবহারকারীদের ঘন ঘন পুনরায় প্রমাণীকরণের প্রয়োজন হতে পারে৷ এই নীতিটি Google ক্লাউড কনসোল, Google ক্লাউড SDK (জিক্লাউড CLI নামেও পরিচিত), এবং ক্লাউড প্ল্যাটফর্ম স্কোপের প্রয়োজন এমন যেকোনো তৃতীয় পক্ষের OAuth অ্যাপ্লিকেশনের অ্যাক্সেসকে প্রভাবিত করে৷ যদি কোনও ব্যবহারকারীর একটি সেশন নিয়ন্ত্রণ নীতি থাকে তবে সেশনের মেয়াদ শেষ হওয়ার পরে, আপনার API কলগুলি রিফ্রেশ টোকেন প্রত্যাহার করা হলে যা ঘটবে তার অনুরূপ ত্রুটি হবে - কলটি একটি ত্রুটির প্রকারের সাথে ব্যর্থ হবে invalid_grant ; error_subtype ক্ষেত্রটি একটি প্রত্যাহার করা টোকেন এবং একটি সেশন নিয়ন্ত্রণ নীতির কারণে ব্যর্থতার মধ্যে পার্থক্য করতে ব্যবহার করা যেতে পারে (উদাহরণস্বরূপ, "error_subtype": "invalid_rapt" )। যেহেতু সেশনের সময়কাল খুব সীমিত হতে পারে (1 ঘন্টা থেকে 24 ঘন্টার মধ্যে), এই দৃশ্যটি অবশ্যই একটি প্রমাণীকরণ সেশন পুনরায় আরম্ভ করার মাধ্যমে সুন্দরভাবে পরিচালনা করা উচিত।

সমানভাবে, আপনি সার্ভার-টু-সার্ভার স্থাপনার জন্য ব্যবহারকারীর শংসাপত্র ব্যবহার বা উৎসাহিত করবেন না। যদি ব্যবহারকারীর শংসাপত্রগুলি দীর্ঘদিন ধরে চলমান চাকরি বা ক্রিয়াকলাপের জন্য সার্ভারে স্থাপন করা হয় এবং একজন গ্রাহক এই ধরনের ব্যবহারকারীদের উপর সেশন নিয়ন্ত্রণ নীতি প্রয়োগ করে, তাহলে সার্ভার অ্যাপ্লিকেশন ব্যর্থ হবে কারণ সেশনের মেয়াদ শেষ হয়ে গেলে ব্যবহারকারীকে পুনরায় প্রমাণীকরণ করার কোনো উপায় থাকবে না।

আপনার গ্রাহকদের এই বৈশিষ্ট্যটি মোতায়েন করতে কীভাবে সহায়তা করবেন সে সম্পর্কে আরও তথ্যের জন্য, এই প্রশাসক-কেন্দ্রিক সহায়তা নিবন্ধটি দেখুন।

ক্লায়েন্ট লাইব্রেরি

নিম্নলিখিত ক্লায়েন্ট লাইব্রেরিগুলি জনপ্রিয় ফ্রেমওয়ার্কগুলির সাথে সংহত করে, যা OAuth 2.0কে সহজতর করে তোলে। সময়ের সাথে সাথে গ্রন্থাগারগুলিতে আরও বৈশিষ্ট্য যুক্ত করা হবে।

,

Google APIগুলি প্রমাণীকরণ এবং অনুমোদনের জন্য OAuth 2.0 প্রোটোকল ব্যবহার করে৷ গুগল সাধারণ OAuth 2.0 পরিস্থিতি যেমন ওয়েব সার্ভার, ক্লায়েন্ট-সাইড, ইনস্টল করা এবং সীমিত-ইনপুট ডিভাইস অ্যাপ্লিকেশনগুলির জন্য সমর্থন করে।

শুরু করার জন্য, থেকে OAuth 2.0 ক্লায়েন্টের শংসাপত্রগুলি পান Google API Console . তারপরে আপনার ক্লায়েন্ট অ্যাপ্লিকেশনটি গুগল অনুমোদনের সার্ভার থেকে অ্যাক্সেস টোকেনের জন্য অনুরোধ করে, প্রতিক্রিয়া থেকে একটি টোকেন বের করে এবং আপনি যে অ্যাক্সেস করতে চান তা গুগল এপিআইতে টোকেন প্রেরণ করে। গুগলের সাথে OAuth 2.0 ব্যবহার করার একটি ইন্টারেক্টিভ বিক্ষোভের জন্য (আপনার নিজস্ব ক্লায়েন্ট শংসাপত্রগুলি ব্যবহার করার বিকল্প সহ), OAuth 2.0 খেলার মাঠের সাথে পরীক্ষা করুন।

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

মৌলিক পদক্ষেপ

OAuth 2.0 ব্যবহার করে গুগল এপিআই অ্যাক্সেস করার সময় সমস্ত অ্যাপ্লিকেশন একটি প্রাথমিক প্যাটার্ন অনুসরণ করে। একটি উচ্চ স্তরে, আপনি পাঁচটি পদক্ষেপ অনুসরণ করেন:

1। ওআউথ 2.0 শংসাপত্রগুলি থেকে প্রাপ্ত Google API Console.

ভিজিট করুন Google API Console OAuth 2.0 শংসাপত্রগুলি যেমন ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট যা গুগল এবং আপনার অ্যাপ্লিকেশন উভয়ের জন্যই পরিচিত। আপনি কি ধরণের অ্যাপ্লিকেশন তৈরি করছেন তার উপর ভিত্তি করে মানগুলির সেট পরিবর্তিত হয়। উদাহরণস্বরূপ, একটি জাভাস্ক্রিপ্ট অ্যাপ্লিকেশন একটি গোপন প্রয়োজন হয় না, কিন্তু একটি ওয়েব সার্ভার অ্যাপ্লিকেশন আছে.

আপনার অ্যাপ্লিকেশনটি যে প্ল্যাটফর্মটি চালাবে তার জন্য আপনাকে অবশ্যই একটি ওআউথ ক্লায়েন্ট তৈরি করতে হবে, উদাহরণস্বরূপ:

2। গুগল অনুমোদনের সার্ভার থেকে অ্যাক্সেস টোকেন পান।

আপনার অ্যাপ্লিকেশনটি গুগল এপিআই ব্যবহার করে ব্যক্তিগত ডেটা অ্যাক্সেস করার আগে, এটি অবশ্যই একটি অ্যাক্সেস টোকেন গ্রহণ করতে হবে যা সেই এপিআইতে অ্যাক্সেস দেয়। একক অ্যাক্সেস টোকেন একাধিক এপিআইতে বিভিন্ন ডিগ্রি অ্যাক্সেস দিতে পারে। scope নামে একটি পরিবর্তনশীল প্যারামিটার সংস্থান এবং ক্রিয়াকলাপগুলির সেট নিয়ন্ত্রণ করে যা অ্যাক্সেস টোকেন অনুমতি দেয়। অ্যাক্সেস-টোকেন অনুরোধের সময়, আপনার অ্যাপ্লিকেশনটি scope প্যারামিটারে এক বা একাধিক মান প্রেরণ করে।

এই অনুরোধটি করার বিভিন্ন উপায় রয়েছে এবং আপনি যে ধরণের অ্যাপ্লিকেশনটি তৈরি করছেন তার ভিত্তিতে সেগুলি পৃথক হয়। উদাহরণস্বরূপ, একটি জাভাস্ক্রিপ্ট অ্যাপ্লিকেশন ব্রাউজারটি গুগলে পুনর্নির্দেশ করে অ্যাক্সেস টোকেনের জন্য অনুরোধ করতে পারে, যখন কোনও ব্রাউজার নেই এমন কোনও ডিভাইসে ইনস্টল করা একটি অ্যাপ্লিকেশন ওয়েব পরিষেবার অনুরোধগুলি ব্যবহার করে।

কিছু অনুরোধগুলির জন্য একটি প্রমাণীকরণের পদক্ষেপের প্রয়োজন হয় যেখানে ব্যবহারকারী তাদের গুগল অ্যাকাউন্টের সাথে লগ ইন করে। লগ ইন করার পরে, ব্যবহারকারীকে জিজ্ঞাসা করা হয় যে তারা আপনার অ্যাপ্লিকেশনটির জন্য অনুরোধ করছে এমন এক বা একাধিক অনুমতি প্রদান করতে ইচ্ছুক কিনা। এই প্রক্রিয়াটিকে ব্যবহারকারীর সম্মতি বলা হয়।

যদি ব্যবহারকারী কমপক্ষে একটি অনুমতি দেয় তবে গুগল অনুমোদন সার্ভার আপনার অ্যাপ্লিকেশনটিকে একটি অ্যাক্সেস টোকেন (বা আপনার অ্যাপ্লিকেশনটি অ্যাক্সেস টোকেন পেতে ব্যবহার করতে পারে এমন একটি অনুমোদনের কোড) এবং সেই টোকেন দ্বারা প্রদত্ত অ্যাক্সেসের স্কোপগুলির একটি তালিকা প্রেরণ করে। যদি ব্যবহারকারী অনুমতি না দেয় তবে সার্ভার একটি ত্রুটি ফেরত দেয়।

সামনের দিকে না গিয়ে সময় অ্যাক্সেসের প্রয়োজন হয়, ক্রমবর্ধমানভাবে স্কোপগুলির অনুরোধ করা এটি সাধারণত একটি সেরা অনুশীলন। উদাহরণস্বরূপ, কোনও অ্যাপ্লিকেশন যা কোনও ইভেন্টকে ক্যালেন্ডারে সংরক্ষণ করতে সমর্থন করতে চায় তা গুগল ক্যালেন্ডার অ্যাক্সেসের জন্য অনুরোধ করা উচিত নয় যতক্ষণ না ব্যবহারকারী "অ্যাড টু ক্যালেন্ডারে" বোতামটি টিপেন; বর্ধিত অনুমোদন দেখুন।

3। ব্যবহারকারীর দ্বারা অনুমোদিত অ্যাক্সেসের স্কোপগুলি পরীক্ষা করুন।

একটি সম্পর্কিত Google API অ্যাক্সেসের উপর নির্ভর করে আপনার অ্যাপ্লিকেশনের বৈশিষ্ট্য এবং কার্যকারিতা অ্যাক্সেস করার জন্য প্রয়োজনীয় স্কোপের সাথে অ্যাক্সেস টোকেন প্রতিক্রিয়াতে অন্তর্ভুক্ত স্কোপের তুলনা করুন। আপনার অ্যাপের কোনও বৈশিষ্ট্য সম্পর্কিত এপিআই অ্যাক্সেস ছাড়াই কাজ করতে অক্ষম।

আপনার অনুরোধে অন্তর্ভুক্ত স্কোপটি আপনার প্রতিক্রিয়াতে অন্তর্ভুক্ত সুযোগের সাথে মেলে না, এমনকি ব্যবহারকারী সমস্ত অনুরোধ করা স্কোপগুলি মঞ্জুর করলেও। অ্যাক্সেসের জন্য প্রয়োজনীয় স্কোপগুলির জন্য প্রতিটি গুগল এপিআইয়ের জন্য ডকুমেন্টেশন দেখুন। একটি এপিআই অনুরোধে অনুমোদিত সমস্ত মানের জন্য একই স্কোপ স্ট্রিংটি ফেরত দেওয়ার জন্য অ্যাক্সেসের একক স্কোপে একাধিক স্কোপ স্ট্রিং মানগুলি মানচিত্র করতে পারে। উদাহরণ: গুগল পিপল এপিআই https://www.googleapis.com/auth/contacts এর একটি সুযোগ ফেরত দিতে পারে যখন কোনও অ্যাপ্লিকেশন কোনও ব্যবহারকারীকে অনুরোধ করা হয়েছিল https://www.google.com/m8/feeds/ এর একটি সুযোগ অনুমোদিত; গুগল পিপল এপিআই পদ্ধতিতে people.updateContact https://www.googleapis.com/auth/contacts

4 .. একটি এপিআইতে অ্যাক্সেস টোকেন প্রেরণ করুন।

কোনও অ্যাপ্লিকেশন অ্যাক্সেস টোকেন পাওয়ার পরে, এটি এইচটিটিপি অনুমোদনের অনুরোধ শিরোনামে একটি গুগল এপিআইতে টোকেন প্রেরণ করে। ইউআরআই ক্যোয়ারী-স্ট্রিং প্যারামিটার হিসাবে টোকেনগুলি প্রেরণ করা সম্ভব, তবে আমরা এটির প্রস্তাব দিই না, কারণ ইউআরআই প্যারামিটারগুলি সম্পূর্ণরূপে সুরক্ষিত নয় এমন লগ ফাইলগুলিতে শেষ হতে পারে। এছাড়াও, অপ্রয়োজনীয় ইউআরআই প্যারামিটারের নাম তৈরি করা এড়াতে ভাল বিশ্রাম অনুশীলন।

অ্যাক্সেস টোকেনগুলি কেবল টোকেন অনুরোধের scope বর্ণিত অপারেশন এবং সংস্থানগুলির সেটগুলির জন্য বৈধ। উদাহরণস্বরূপ, যদি গুগল ক্যালেন্ডার এপিআইয়ের জন্য কোনও অ্যাক্সেস টোকেন জারি করা হয় তবে এটি গুগল পরিচিতি এপিআইতে অ্যাক্সেস দেয় না। তবে আপনি অনুরূপ ক্রিয়াকলাপের জন্য একাধিকবার গুগল ক্যালেন্ডার এপিআইতে সেই অ্যাক্সেস টোকেনটি প্রেরণ করতে পারেন।

5। প্রয়োজনে অ্যাক্সেস টোকেনটি রিফ্রেশ করুন।

অ্যাক্সেস টোকেন সীমিত জীবনকাল আছে. যদি আপনার অ্যাপ্লিকেশনটির একক অ্যাক্সেস টোকেনের আজীবন ছাড়িয়ে গুগল এপিআইতে অ্যাক্সেসের প্রয়োজন হয় তবে এটি একটি রিফ্রেশ টোকেন পেতে পারে। একটি রিফ্রেশ টোকেন আপনার অ্যাপ্লিকেশনটিকে নতুন অ্যাক্সেস টোকেন পেতে দেয়।

দৃশ্যকল্প

ওয়েব সার্ভার অ্যাপ্লিকেশন

গুগল ওএউথ ২.০ এন্ডপয়েন্টটি ওয়েব সার্ভার অ্যাপ্লিকেশনগুলিকে সমর্থন করে যা পিএইচপি, জাভা, গো, পাইথন, রুবি এবং এএসপি.নেটের মতো ভাষা এবং ফ্রেমওয়ার্ক ব্যবহার করে।

অনুমোদনের ক্রমটি শুরু হয় যখন আপনার অ্যাপ্লিকেশনটি কোনও গুগল ইউআরএল -তে কোনও ব্রাউজারকে পুনর্নির্দেশ করে; ইউআরএলটিতে ক্যোয়ারী প্যারামিটারগুলি অন্তর্ভুক্ত রয়েছে যা অ্যাক্সেসের ধরণটি অনুরোধ করা হচ্ছে তা নির্দেশ করে। গুগল ব্যবহারকারীর প্রমাণীকরণ, সেশন নির্বাচন এবং ব্যবহারকারীর সম্মতি পরিচালনা করে। ফলাফলটি একটি অনুমোদনের কোড, যা অ্যাপ্লিকেশনটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেনের বিনিময় করতে পারে।

অ্যাপ্লিকেশনটিতে ভবিষ্যতের ব্যবহারের জন্য রিফ্রেশ টোকেন সঞ্চয় করা উচিত এবং গুগল এপিআই অ্যাক্সেস করতে অ্যাক্সেস টোকেন ব্যবহার করা উচিত। অ্যাক্সেস টোকেনটির মেয়াদ শেষ হয়ে গেলে, অ্যাপ্লিকেশনটি একটি নতুন পেতে রিফ্রেশ টোকেন ব্যবহার করে।

আপনার অ্যাপ্লিকেশনটি গুগল অনুমোদনের সার্ভারে একটি টোকেন অনুরোধ প্রেরণ করে, একটি অনুমোদনের কোড গ্রহণ করে, একটি টোকেনের জন্য কোডটি বিনিময় করে এবং গুগল এপিআই এন্ডপয়েন্টে কল করতে টোকেন ব্যবহার করে।

বিশদগুলির জন্য, ওয়েব সার্ভার অ্যাপ্লিকেশনগুলির জন্য OAuth 2.0 ব্যবহার করে দেখুন।

ইনস্টল করা অ্যাপ্লিকেশন

গুগল ওএউথ ২.০ এন্ডপয়েন্টটি কম্পিউটার, মোবাইল ডিভাইস এবং ট্যাবলেটগুলির মতো ডিভাইসে ইনস্টল করা অ্যাপ্লিকেশনগুলিকে সমর্থন করে। আপনি যখন মাধ্যমে একটি ক্লায়েন্ট আইডি তৈরি করেন Google API Console , উল্লেখ করুন যে এটি একটি ইনস্টলড অ্যাপ্লিকেশন, তারপরে অ্যান্ড্রয়েড, ক্রোম অ্যাপ্লিকেশন, আইওএস, ইউনিভার্সাল উইন্ডোজ প্ল্যাটফর্ম (ইউডাব্লুপি), বা ডেস্কটপ অ্যাপ্লিকেশনটি অ্যাপ্লিকেশন ধরণের হিসাবে নির্বাচন করুন।

প্রক্রিয়াটির ফলাফল একটি ক্লায়েন্ট আইডি এবং কিছু ক্ষেত্রে একটি ক্লায়েন্ট সিক্রেট, যা আপনি আপনার অ্যাপ্লিকেশনটির উত্স কোডে এম্বেড করেছেন। (এই প্রসঙ্গে, ক্লায়েন্টের গোপনীয়তা স্পষ্টতই কোনও গোপন হিসাবে বিবেচিত হয় না))

অনুমোদনের ক্রমটি শুরু হয় যখন আপনার অ্যাপ্লিকেশনটি কোনও গুগল ইউআরএল -তে কোনও ব্রাউজারকে পুনর্নির্দেশ করে; ইউআরএলটিতে ক্যোয়ারী প্যারামিটারগুলি অন্তর্ভুক্ত রয়েছে যা অ্যাক্সেসের ধরণটি অনুরোধ করা হচ্ছে তা নির্দেশ করে। গুগল ব্যবহারকারীর প্রমাণীকরণ, সেশন নির্বাচন এবং ব্যবহারকারীর সম্মতি পরিচালনা করে। ফলাফলটি একটি অনুমোদনের কোড, যা অ্যাপ্লিকেশনটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেনের বিনিময় করতে পারে।

অ্যাপ্লিকেশনটিতে ভবিষ্যতের ব্যবহারের জন্য রিফ্রেশ টোকেন সঞ্চয় করা উচিত এবং গুগল এপিআই অ্যাক্সেস করতে অ্যাক্সেস টোকেন ব্যবহার করা উচিত। অ্যাক্সেস টোকেনটির মেয়াদ শেষ হয়ে গেলে, অ্যাপ্লিকেশনটি একটি নতুন পেতে রিফ্রেশ টোকেন ব্যবহার করে।

আপনার অ্যাপ্লিকেশনটি গুগল অনুমোদনের সার্ভারে একটি টোকেন অনুরোধ প্রেরণ করে, একটি অনুমোদনের কোড গ্রহণ করে, একটি টোকেনের জন্য কোডটি বিনিময় করে এবং গুগল এপিআই এন্ডপয়েন্টে কল করতে টোকেন ব্যবহার করে।

বিশদগুলির জন্য, ইনস্টলড অ্যাপ্লিকেশনগুলির জন্য OAuth 2.0 ব্যবহার করে দেখুন।

ক্লায়েন্ট-সাইড (জাভাস্ক্রিপ্ট) অ্যাপ্লিকেশন

গুগল OAuth 2.0 এন্ডপয়েন্টটি ব্রাউজারে চালিত জাভাস্ক্রিপ্ট অ্যাপ্লিকেশনগুলিকে সমর্থন করে।

অনুমোদনের ক্রমটি শুরু হয় যখন আপনার অ্যাপ্লিকেশনটি কোনও গুগল ইউআরএল -তে কোনও ব্রাউজারকে পুনর্নির্দেশ করে; ইউআরএলটিতে ক্যোয়ারী প্যারামিটারগুলি অন্তর্ভুক্ত রয়েছে যা অ্যাক্সেসের ধরণটি অনুরোধ করা হচ্ছে তা নির্দেশ করে। গুগল ব্যবহারকারীর প্রমাণীকরণ, সেশন নির্বাচন এবং ব্যবহারকারীর সম্মতি পরিচালনা করে।

ফলাফলটি একটি অ্যাক্সেস টোকেন, যা ক্লায়েন্টকে গুগল এপিআই অনুরোধে অন্তর্ভুক্ত করার আগে যাচাই করা উচিত। টোকেনটির মেয়াদ শেষ হয়ে গেলে, অ্যাপ্লিকেশনটি প্রক্রিয়াটি পুনরাবৃত্তি করে।

আপনার জেএস অ্যাপ্লিকেশন গুগল অনুমোদনের সার্ভারে একটি টোকেন অনুরোধ প্রেরণ করে, একটি টোকেন গ্রহণ করে, টোকেনকে বৈধতা দেয় এবং গুগল এপিআই এন্ডপয়েন্টে কল করতে টোকেন ব্যবহার করে।

বিশদগুলির জন্য, ক্লায়েন্ট-সাইড অ্যাপ্লিকেশনগুলির জন্য OAuth 2.0 ব্যবহার করে দেখুন।

সীমিত ইনপুট ডিভাইসে অ্যাপ্লিকেশন

গুগল ওএউথ ২.০ এন্ডপয়েন্টটি এমন অ্যাপ্লিকেশনগুলিকে সমর্থন করে যা গেম কনসোল, ভিডিও ক্যামেরা এবং প্রিন্টারগুলির মতো সীমিত-ইনপুট ডিভাইসে চালিত হয়।

অনুমোদনের ক্রমটি কোনও অনুমোদনের কোডের জন্য গুগল ইউআরএলকে একটি ওয়েব পরিষেবা অনুরোধ করার অ্যাপ্লিকেশন দিয়ে শুরু হয়। প্রতিক্রিয়াটিতে একটি ইউআরএল এবং একটি কোড সহ বেশ কয়েকটি পরামিতি রয়েছে যা অ্যাপ্লিকেশনটি ব্যবহারকারীকে দেখায়।

ব্যবহারকারী ডিভাইস থেকে ইউআরএল এবং কোড গ্রহণ করে, তারপরে আরও সমৃদ্ধ ইনপুট ক্ষমতা সহ একটি পৃথক ডিভাইস বা কম্পিউটারে স্যুইচ করে। ব্যবহারকারী একটি ব্রাউজার চালু করে, নির্দিষ্ট ইউআরএলে নেভিগেট করে, লগ ইন করে এবং কোডে প্রবেশ করে।

এদিকে, অ্যাপ্লিকেশনটি একটি নির্দিষ্ট ব্যবধানে একটি গুগল ইউআরএল পোল করে। ব্যবহারকারী অ্যাক্সেস অনুমোদনের পরে, গুগল সার্ভারের প্রতিক্রিয়াটিতে একটি অ্যাক্সেস টোকেন এবং রিফ্রেশ টোকেন রয়েছে। অ্যাপ্লিকেশনটিতে ভবিষ্যতের ব্যবহারের জন্য রিফ্রেশ টোকেন সঞ্চয় করা উচিত এবং গুগল এপিআই অ্যাক্সেস করতে অ্যাক্সেস টোকেন ব্যবহার করা উচিত। অ্যাক্সেস টোকেনটির মেয়াদ শেষ হয়ে গেলে, অ্যাপ্লিকেশনটি একটি নতুন পেতে রিফ্রেশ টোকেন ব্যবহার করে।

ব্যবহারকারী একটি পৃথক ডিভাইসে লগ ইন করে যার একটি ব্রাউজার রয়েছে

বিশদের জন্য, ডিভাইসগুলির জন্য OAuth 2.0 ব্যবহার করে দেখুন।

পরিষেবা অ্যাকাউন্ট

গুগল এপিআই যেমন পূর্বাভাস এপিআই এবং গুগল ক্লাউড স্টোরেজ ব্যবহারকারীর তথ্য অ্যাক্সেস না করে আপনার অ্যাপ্লিকেশনটির পক্ষে কাজ করতে পারে। এই পরিস্থিতিতে আপনার অ্যাপ্লিকেশনটির এপিআইয়ের কাছে নিজস্ব পরিচয় প্রমাণ করা দরকার, তবে কোনও ব্যবহারকারীর সম্মতি প্রয়োজন হয় না। একইভাবে, এন্টারপ্রাইজ পরিস্থিতিতে, আপনার অ্যাপ্লিকেশনটি কিছু সংস্থানগুলিতে অর্পিত অ্যাক্সেসের জন্য অনুরোধ করতে পারে।

এই ধরণের সার্ভার-টু-সার্ভার ইন্টারঅ্যাকশনগুলির জন্য আপনার একটি পরিষেবা অ্যাকাউন্টের প্রয়োজন, যা একটি অ্যাকাউন্ট যা কোনও পৃথক শেষ ব্যবহারকারীর পরিবর্তে আপনার অ্যাপ্লিকেশনটির অন্তর্ভুক্ত। আপনার অ্যাপ্লিকেশনটি পরিষেবা অ্যাকাউন্টের পক্ষে গুগল এপিআই কল করে এবং ব্যবহারকারীর সম্মতি প্রয়োজন হয় না। (অ-পরিষেবা-অ্যাকাউন্টের পরিস্থিতিতে, আপনার অ্যাপ্লিকেশনটি শেষ ব্যবহারকারীদের পক্ষে গুগল এপিআইকে কল করে এবং ব্যবহারকারীর সম্মতি কখনও কখনও প্রয়োজন হয়))

একটি পরিষেবা অ্যাকাউন্টের শংসাপত্রগুলি, যা আপনি থেকে প্রাপ্ত Google API Console, একটি উত্পন্ন ইমেল ঠিকানা অন্তর্ভুক্ত করুন যা অনন্য, একটি ক্লায়েন্ট আইডি এবং কমপক্ষে একটি সরকারী/ব্যক্তিগত কী জুটি অন্তর্ভুক্ত করুন। আপনি স্বাক্ষরিত জেডাব্লুটি তৈরি করতে এবং উপযুক্ত ফর্ম্যাটে একটি অ্যাক্সেস-টোকেন অনুরোধ তৈরি করতে ক্লায়েন্ট আইডি এবং একটি ব্যক্তিগত কী ব্যবহার করেন। আপনার অ্যাপ্লিকেশন তারপর Google OAuth 2.0 অনুমোদন সার্ভারে টোকেন অনুরোধ পাঠায়, যা একটি অ্যাক্সেস টোকেন ফেরত দেয়। অ্যাপ্লিকেশনটি একটি Google API অ্যাক্সেস করতে টোকেন ব্যবহার করে। টোকেনটির মেয়াদ শেষ হয়ে গেলে, অ্যাপ্লিকেশনটি প্রক্রিয়াটি পুনরাবৃত্তি করে।

আপনার সার্ভার অ্যাপ্লিকেশনটি গুগল অনুমোদনের সার্ভার থেকে একটি টোকেনের জন্য অনুরোধ করতে একটি জেডব্লিউটি ব্যবহার করে, তারপরে গুগল এপিআই এন্ডপয়েন্টে কল করতে টোকেন ব্যবহার করে। কোনও শেষ ব্যবহারকারী জড়িত নেই।

বিশদের জন্য, পরিষেবা-অ্যাকাউন্ট ডকুমেন্টেশন দেখুন।

টোকেনের আকার

টোকেনগুলি আকারে পরিবর্তিত হতে পারে, নিম্নলিখিত সীমা পর্যন্ত:

  • অনুমোদনের কোড: 256 বাইট
  • অ্যাক্সেস টোকেন: 2048 বাইট
  • রিফ্রেশ টোকেন: 512 বাইট

গুগল ক্লাউডের সুরক্ষা টোকেন পরিষেবা এপিআই দ্বারা ফিরে আসা অ্যাক্সেস টোকেনগুলি একইভাবে গুগল এপিআই ওএউথ 2.0 অ্যাক্সেস টোকেনগুলিতে কাঠামোগত করা হয়েছে তবে টোকেন আকারের সীমা রয়েছে। বিস্তারিত জানার জন্য, API ডকুমেন্টেশন দেখুন।

গুগল এই সীমাগুলির মধ্যে টোকেন আকার পরিবর্তন করার অধিকার সংরক্ষণ করে এবং আপনার অ্যাপ্লিকেশন অবশ্যই সেই অনুযায়ী ভেরিয়েবল টোকেন আকারগুলি সমর্থন করবে।

রিফ্রেশ টোকেন মেয়াদ শেষ

একটি মঞ্জুর করা রিফ্রেশ টোকেন আর কাজ নাও করতে পারে সেই সম্ভাবনার জন্য আপনাকে অবশ্যই আপনার কোড লিখতে হবে। একটি রিফ্রেশ টোকেন এই কারণগুলির মধ্যে একটির জন্য কাজ করা বন্ধ করতে পারে:

বাহ্যিক ব্যবহারকারী প্রকারের জন্য কনফিগার করা একটি OAuth সম্মতি স্ক্রিন সহ একটি গুগল ক্লাউড প্ল্যাটফর্ম প্রকল্প এবং "টেস্টিং" এর একটি প্রকাশনা স্থিতি 7 দিনের মধ্যে একটি রিফ্রেশ টোকেন মেয়াদোত্তীর্ণ জারি করা হয়, যদি না অনুরোধ করা একমাত্র ওআউথ স্কোপগুলি নাম, ইমেল ঠিকানা এবং একটি উপসেট না হয় ব্যবহারকারী প্রোফাইল ( userinfo.email, userinfo.profile, openid স্কোপস বা তাদের ওপেনআইডি সংযোগ সমতুল্যদের মাধ্যমে)।

OAuth 2.0 ক্লায়েন্ট আইডি প্রতি গুগল অ্যাকাউন্টে 100 টি রিফ্রেশ টোকেনের সীমা রয়েছে। সীমা পৌঁছে গেলে, একটি নতুন রিফ্রেশ টোকেন তৈরি করা স্বয়ংক্রিয়ভাবে পূর্ববর্তী রিফ্রেশ টোকেনটিকে সতর্কতা ছাড়াই বাতিল করে দেয়। এই সীমাটি পরিষেবা অ্যাকাউন্টগুলিতে প্রযোজ্য নয়।

একটি ব্যবহারকারীর অ্যাকাউন্ট বা পরিষেবা অ্যাকাউন্টের সমস্ত ক্লায়েন্ট জুড়ে থাকা রিফ্রেশ টোকেনের মোট সংখ্যার একটি বড় সীমাও রয়েছে। বেশিরভাগ সাধারণ ব্যবহারকারীরা এই সীমাটি অতিক্রম করবেন না তবে কোনও বিকাশকারী অ্যাকাউন্টটি কোনও বাস্তবায়ন পরীক্ষা করতে ব্যবহৃত হয়।

আপনার যদি একাধিক প্রোগ্রাম, মেশিন বা ডিভাইসগুলি অনুমোদিত করতে হয় তবে একটি কার্যকারিতা হ'ল আপনি গুগল অ্যাকাউন্টে অনুযায়ী অনুমোদিত ক্লায়েন্টের সংখ্যা 15 বা 20 এর মধ্যে সীমাবদ্ধ করা। আপনি যদি গুগল ওয়ার্কস্পেস অ্যাডমিন হন তবে আপনি প্রশাসনিক সুযোগসুবিধা এবং অতিরিক্ত ব্যবহারকারী তৈরি করতে পারেন কিছু ক্লায়েন্টকে অনুমোদনের জন্য এগুলি ব্যবহার করুন।

গুগল ক্লাউড প্ল্যাটফর্মের (জিসিপি) সংস্থাগুলির জন্য সেশন নিয়ন্ত্রণ নীতিগুলি নিয়ে কাজ করা

জিসিপি সংস্থাগুলির প্রশাসকদের গুগল ক্লাউড সেশন কন্ট্রোল বৈশিষ্ট্যটি ব্যবহার করে জিসিপি সংস্থানগুলি অ্যাক্সেস করার সময় ব্যবহারকারীদের ঘন ঘন পুনরায় অনুমোদনের প্রয়োজন হতে পারে। এই নীতিটি গুগল ক্লাউড কনসোল, গুগল ক্লাউড এসডিকে (এটি জিসিএলউড সিএলআই নামেও পরিচিত) এবং যে কোনও তৃতীয় পক্ষের ওআউথ অ্যাপ্লিকেশনটিতে ক্লাউড প্ল্যাটফর্মের সুযোগের প্রয়োজন। যদি কোনও ব্যবহারকারীর জায়গায় সেশন নিয়ন্ত্রণ নীতি থাকে তবে সেশন সময়কালের মেয়াদ শেষ হওয়ার পরে, আপনার এপিআই কলগুলি রিফ্রেশ টোকেনটি বাতিল করা হলে কী ঘটবে তার অনুরূপ ত্রুটি হবে - কলটি একটি ত্রুটি প্রকারের সাথে ব্যর্থ হবে invalid_grant ; error_subtype ক্ষেত্রটি সেশন কন্ট্রোল নীতিমালার কারণে প্রত্যাহার করা টোকেন এবং ব্যর্থতার মধ্যে পার্থক্য করতে ব্যবহার করা যেতে পারে (উদাহরণস্বরূপ, "error_subtype": "invalid_rapt" )। যেহেতু অধিবেশন সময়কাল খুব সীমিত হতে পারে (1 ঘন্টা থেকে 24 ঘন্টার মধ্যে), এই দৃশ্যটি অবশ্যই একটি এথ সেশনটি পুনরায় চালু করে করুণভাবে পরিচালনা করতে হবে।

সমানভাবে, আপনাকে অবশ্যই সার্ভার-টু-সার্ভার মোতায়েনের জন্য ব্যবহারকারী শংসাপত্রগুলি ব্যবহার করতে বা উত্সাহিত করতে হবে না। যদি ব্যবহারকারীর শংসাপত্রগুলি দীর্ঘ চলমান চাকরি বা অপারেশনের জন্য কোনও সার্ভারে মোতায়েন করা হয় এবং কোনও গ্রাহক এই জাতীয় ব্যবহারকারীদের উপর সেশন নিয়ন্ত্রণ নীতি প্রয়োগ করে, সার্ভারের অ্যাপ্লিকেশনটি ব্যর্থ হবে কারণ সেশন সময়কালের মেয়াদ শেষ হয়ে গেলে ব্যবহারকারীকে পুনরায় প্রমাণ করার কোনও উপায় থাকবে না।

আপনার গ্রাহকদের এই বৈশিষ্ট্যটি মোতায়েন করতে কীভাবে সহায়তা করবেন সে সম্পর্কে আরও তথ্যের জন্য, এই প্রশাসক-কেন্দ্রিক সহায়তা নিবন্ধটি দেখুন।

ক্লায়েন্ট লাইব্রেরি

নিম্নলিখিত ক্লায়েন্ট লাইব্রেরিগুলি জনপ্রিয় ফ্রেমওয়ার্কগুলির সাথে সংহত করে, যা OAuth 2.0কে সহজতর করে তোলে। সময়ের সাথে সাথে গ্রন্থাগারগুলিতে আরও বৈশিষ্ট্য যুক্ত করা হবে।