একটি ব্যবহারকারী অনুমোদন মডেল চয়ন করুন

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

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

জিআইএস লাইব্রেরিটি ব্যবহারকারীর ডিভাইসে এই সমর্থিত ব্রাউজারগুলিতে চলে। এটি Node.js-এর মতো সার্ভার-সাইড জাভাস্ক্রিপ্ট ফ্রেমওয়ার্কের সাথে ব্যবহারের জন্য নয়, পরিবর্তে গুগলের Node.js ক্লায়েন্ট লাইব্রেরি ব্যবহার করুন।

এই নির্দেশিকাটি শুধুমাত্র অনুমোদন এবং ডেটা শেয়ারিং সংক্রান্ত বিষয়গুলো আলোচনা করে। এটি ব্যবহারকারীর প্রমাণীকরণ পর্যালোচনা করে না; পরিবর্তে, ব্যবহারকারীর সাইন-আপ এবং সাইন-ইন করার জন্য 'Sign In With Google' এবং 'Migrating from Google Sign-In' নির্দেশিকাটি দেখুন।

জিআইএস লাইব্রেরি আপনার জন্য উপযুক্ত কিনা তা নির্ধারণ করা

আপনাকে বেছে নিতে হবে যে গুগলের লাইব্রেরি ব্যবহার করা, নাকি নিজের লাইব্রেরি তৈরি করা আপনার প্রয়োজনের জন্য সবচেয়ে উপযুক্ত। বৈশিষ্ট্য এবং কার্যকারিতার একটি সংক্ষিপ্ত বিবরণ:

  • গুগলের আইডেন্টিটি সার্ভিসেস জাভাস্ক্রিপ্ট লাইব্রেরি নিম্নলিখিত বিষয়গুলো বাস্তবায়ন করে:
    • ডায়ালগ-ভিত্তিক সম্মতি প্রক্রিয়া রিডাইরেক্ট কমিয়ে আনে, যার ফলে ব্যবহারকারীরা অনুমোদন প্রক্রিয়া চলাকালীন আপনার সাইটেই থাকতে পারেন।
    • ক্রস-সাইট রিকোয়েস্ট ফরজেরি (CRSF)-এর মতো নিরাপত্তা বৈশিষ্ট্য।
    • স্বতন্ত্র স্কোপের অনুরোধ করতে এবং ব্যবহারকারীর সম্মতি নিশ্চিত করতে সহায়ক মেথডসমূহ।
    • প্রকৌশলীদের উন্নয়নকালে এবং পরবর্তীতে আপনার সাইটের দর্শকদের ব্যবহারের জন্য সহজবোধ্য ত্রুটি ব্যবস্থাপনা ও ডকুমেন্টেশন লিঙ্ক।
  • আইডেন্টিটি সার্ভিসেস লাইব্রেরি ছাড়া বাস্তবায়ন করার সময় নিম্নলিখিত বিষয়গুলোর জন্য আপনি দায়ী থাকবেন:
    • গুগলের OAuth 2.0 এন্ডপয়েন্ট ব্যবহার করে অনুরোধ এবং প্রতিক্রিয়া পরিচালনা করা, যার মধ্যে রিডাইরেক্টও অন্তর্ভুক্ত।
    • ব্যবহারকারীর অভিজ্ঞতা উন্নত করা।
    • অনুরোধ ও প্রতিক্রিয়া যাচাই করতে এবং CSRF প্রতিরোধ করতে নিরাপত্তা বৈশিষ্ট্য বাস্তবায়ন।
    • ব্যবহারকারী অনুরোধকৃত যেকোনো স্কোপের জন্য সম্মতি দিয়েছেন কিনা, তা নিশ্চিত করার পদ্ধতি।
    • OAuth 2.0 ত্রুটি কোড পরিচালনা করা, সহজে পাঠযোগ্য বার্তা তৈরি করা এবং ব্যবহারকারী সহায়তার লিঙ্ক দেওয়া।

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

অনুমোদন প্রবাহ নির্বাচন করা

আপনি গুগল আইডেন্টিটি সার্ভিসেস জাভাস্ক্রিপ্ট লাইব্রেরি ব্যবহার করার সিদ্ধান্ত নিন বা নিজের লাইব্রেরি তৈরি করুন না কেন, আপনাকে দুটি OAuth 2.0 অথরাইজেশন ফ্লো-এর মধ্যে একটি বেছে নিতে হবে: ইমপ্লিসিট অথবা অথরাইজেশন কোড।

উভয় প্রক্রিয়ার ফলেই একটি অ্যাক্সেস টোকেন পাওয়া যায়, যা ব্যবহার করে গুগল এপিআই কল করা যায়।

দুটি প্রবাহের মধ্যে প্রধান পার্থক্যগুলো হলো:

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

বিভিন্ন কার্যপ্রবাহের তুলনা করার সময় এবং আপনার নিরাপত্তার প্রয়োজনীয়তা মূল্যায়ন করার ক্ষেত্রে একটি বিবেচ্য বিষয় হলো, আপনার নির্বাচিত পরিধির (scope) উপর নির্ভর করে ব্যবহারকারীর নিরাপত্তার স্তর পরিবর্তিত হয়। উদাহরণস্বরূপ, ক্যালেন্ডারের আমন্ত্রণগুলো শুধুমাত্র-পঠ্য (read-only) হিসেবে দেখা, ড্রাইভে ফাইল সম্পাদনা করার জন্য পঠন ও লিখন (read-and-write) পরিধি ব্যবহার করার চেয়ে কম ঝুঁকিপূর্ণ বলে বিবেচিত হতে পারে।

OAuth 2.0 ফ্লো তুলনা

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