এই দস্তাবেজটি ব্যাখ্যা করে যে কীভাবে ফোন, ট্যাবলেট এবং কম্পিউটারের মতো ডিভাইসগুলিতে ইনস্টল করা অ্যাপ্লিকেশনগুলি YouTube Analytics API বা YouTube রিপোর্টিং API-এ অ্যাক্সেস অনুমোদন করতে Google-এর OAuth 2.0 এন্ডপয়েন্ট ব্যবহার করে৷
OAuth 2.0 ব্যবহারকারীদের তাদের ব্যবহারকারীর নাম, পাসওয়ার্ড এবং অন্যান্য তথ্য গোপন রেখে একটি অ্যাপ্লিকেশনের সাথে নির্দিষ্ট ডেটা ভাগ করার অনুমতি দেয়৷ উদাহরণস্বরূপ, একটি চ্যানেলের YouTube বিশ্লেষণ ডেটা পুনরুদ্ধার করার অনুমতি পেতে একটি অ্যাপ্লিকেশন OAuth 2.0 ব্যবহার করতে পারে৷
ইনস্টল করা অ্যাপগুলি পৃথক ডিভাইসে বিতরণ করা হয় এবং ধারণা করা হয় যে এই অ্যাপগুলি গোপন রাখতে পারে না। ব্যবহারকারী যখন অ্যাপে উপস্থিত থাকে বা যখন অ্যাপটি ব্যাকগ্রাউন্ডে চলছে তখন তারা Google API অ্যাক্সেস করতে পারে।
এই অনুমোদন প্রবাহটি ওয়েব সার্ভার অ্যাপ্লিকেশনগুলির জন্য ব্যবহৃত একটির অনুরূপ৷ প্রধান পার্থক্য হল যে ইনস্টল করা অ্যাপগুলিকে অবশ্যই সিস্টেম ব্রাউজার খুলতে হবে এবং Google এর অনুমোদন সার্ভার থেকে প্রতিক্রিয়াগুলি পরিচালনা করতে একটি স্থানীয় পুনঃনির্দেশ ইউআরআই সরবরাহ করতে হবে৷
লাইব্রেরি এবং নমুনা
iOS অ্যাপ্লিকেশানগুলির জন্য আমরা Google iOS SDK এর সাথে সাইন ইনের সর্বশেষ সংস্করণ ব্যবহার করার পরামর্শ দিই৷ SDK ব্যবহারকারীর অনুমোদন পরিচালনা করে এবং এই নির্দেশিকায় বর্ণিত নিম্ন-স্তরের প্রোটোকলের চেয়ে প্রয়োগ করা সহজ।
সিস্টেম ব্রাউজার সমর্থন করে না এমন ডিভাইসে চলমান অ্যাপগুলির জন্য বা যেগুলির সীমিত ইনপুট ক্ষমতা আছে, যেমন টিভি, গেম কনসোল, ক্যামেরা, বা প্রিন্টার, দেখুন OAuth 2.0 for TVs & Devices অথবা TVs and Limited Input Devices-এ সাইন-ইন ।
পূর্বশর্ত
আপনার প্রকল্পের জন্য API সক্ষম করুন
Google API-কে কল করে এমন যেকোনো অ্যাপ্লিকেশনে সেই APIগুলিকে সক্ষম করতে হবে৷ API Console.
আপনার প্রকল্পের জন্য একটি API সক্ষম করতে:
- Open the API Library মধ্যে Google API Console.
- If prompted, select a project, or create a new one.
- ইউটিউব অ্যানালিটিক্স এপিআই এবং ইউটিউব রিপোর্টিং এপিআই খুঁজতে এবং সক্ষম করতে লাইব্রেরি পৃষ্ঠাটি ব্যবহার করুন। YouTube Analytics ডেটা পুনরুদ্ধার করে এমন অনেক অ্যাপ্লিকেশন YouTube ডেটা API-এর সাথে ইন্টারফেস করে। আপনার অ্যাপ্লিকেশন ব্যবহার করবে এমন অন্য যেকোন এপিআই খুঁজুন এবং সেগুলিকেও সক্ষম করুন।
অনুমোদনের শংসাপত্র তৈরি করুন
Google APIগুলি অ্যাক্সেস করতে OAuth 2.0 ব্যবহার করে এমন যেকোনো অ্যাপ্লিকেশনের অনুমোদনের শংসাপত্র থাকতে হবে যা Google-এর OAuth 2.0 সার্ভারে অ্যাপ্লিকেশনটিকে সনাক্ত করে৷ নিম্নলিখিত ধাপগুলি ব্যাখ্যা করে কিভাবে আপনার প্রকল্পের জন্য শংসাপত্র তৈরি করতে হয়। আপনার অ্যাপ্লিকেশনগুলি তারপরে সেই প্রকল্পের জন্য সক্ষম করা APIগুলি অ্যাক্সেস করতে শংসাপত্রগুলি ব্যবহার করতে পারে৷
- Go to the Clients page.
- ক্লায়েন্ট তৈরি করুন ক্লিক করুন।
- নিম্নলিখিত বিভাগগুলি ক্লায়েন্টের প্রকারগুলি বর্ণনা করে যা Google এর অনুমোদন সার্ভার সমর্থন করে৷ আপনার অ্যাপ্লিকেশনের জন্য প্রস্তাবিত ক্লায়েন্টের ধরনটি চয়ন করুন, আপনার OAuth ক্লায়েন্টের নাম দিন এবং ফর্মের অন্যান্য ক্ষেত্রগুলিকে উপযুক্ত হিসাবে সেট করুন৷
iOS
- iOS অ্যাপ্লিকেশনের ধরন নির্বাচন করুন।
- OAuth ক্লায়েন্টের জন্য একটি নাম লিখুন। এই নামটি আপনার প্রকল্পে প্রদর্শিত হয় Clients page ক্লায়েন্ট সনাক্ত করতে।
- আপনার অ্যাপের জন্য বান্ডেল শনাক্তকারী লিখুন। বান্ডেল আইডি হল আপনার অ্যাপের তথ্য সম্পত্তি তালিকা রিসোর্স ফাইলে ( info.plist ) CFBundleIdentifier কী-এর মান। মানটি সাধারণত সাধারণ ফলক বা Xcode প্রকল্প সম্পাদকের স্বাক্ষর ও সক্ষমতা ফলকে প্রদর্শিত হয়। অ্যাপলের অ্যাপ স্টোর কানেক্ট সাইটে অ্যাপের জন্য অ্যাপের তথ্য পৃষ্ঠার সাধারণ তথ্য বিভাগে বান্ডেল আইডিও প্রদর্শিত হয়।
নিশ্চিত করুন যে আপনি আপনার অ্যাপের জন্য সঠিক বান্ডেল আইডি ব্যবহার করছেন, কারণ আপনি অ্যাপ চেক বৈশিষ্ট্যটি ব্যবহার করলে আপনি এটি পরিবর্তন করতে পারবেন না।
- (ঐচ্ছিক)
অ্যাপটি অ্যাপলের অ্যাপ স্টোরে প্রকাশিত হলে আপনার অ্যাপের অ্যাপ স্টোর আইডি লিখুন। স্টোর আইডি হল একটি সাংখ্যিক স্ট্রিং যা প্রতিটি Apple App Store URL-এ অন্তর্ভুক্ত।
- আপনার iOS বা iPadOS ডিভাইসে Apple App Store অ্যাপটি খুলুন।
- আপনার অ্যাপ্লিকেশন জন্য অনুসন্ধান করুন.
- শেয়ার বোতাম নির্বাচন করুন (বর্গাকার এবং তীর আপ প্রতীক)।
- অনুলিপি লিঙ্ক নির্বাচন করুন।
- একটি পাঠ্য সম্পাদকে লিঙ্কটি আটকান। অ্যাপ স্টোর আইডি হল ইউআরএলের চূড়ান্ত অংশ।
উদাহরণ:
https://apps.apple.com/app/google/id 284815942
- (ঐচ্ছিক)
আপনার টিম আইডি লিখুন। আরও তথ্যের জন্য অ্যাপল ডেভেলপার অ্যাকাউন্ট ডকুমেন্টেশনে আপনার টিম আইডি সনাক্ত করুন দেখুন।
দ্রষ্টব্য: আপনি যদি আপনার ক্লায়েন্টের জন্য অ্যাপ চেক সক্ষম করেন তবে টিম আইডি ক্ষেত্রটি প্রয়োজন৷ - (ঐচ্ছিক)
আপনার iOS অ্যাপের জন্য অ্যাপ চেক সক্ষম করুন। আপনি যখন অ্যাপ চেক সক্ষম করেন, তখন আপনার OAuth ক্লায়েন্ট থেকে আসা OAuth 2.0 অনুরোধগুলি আসল এবং আপনার অ্যাপ থেকে এসেছে তা যাচাই করতে Apple-এর অ্যাপ অ্যাটেস্ট পরিষেবা ব্যবহার করা হয়। এটি অ্যাপের ছদ্মবেশের ঝুঁকি কমাতে সাহায্য করে। আপনার iOS অ্যাপের জন্য অ্যাপ চেক সক্ষম করার বিষয়ে আরও জানুন ।
- তৈরি করুন ক্লিক করুন।
UWP
- ইউনিভার্সাল উইন্ডোজ প্ল্যাটফর্ম অ্যাপ্লিকেশন টাইপ নির্বাচন করুন।
- OAuth ক্লায়েন্টের জন্য একটি নাম লিখুন। এই নামটি আপনার প্রকল্পে প্রদর্শিত হয় Clients page ক্লায়েন্ট সনাক্ত করতে।
- আপনার অ্যাপের 12-অক্ষরের Microsoft স্টোর আইডি লিখুন। আপনি অ্যাপ পরিচালনা বিভাগে অ্যাপ পরিচয় পৃষ্ঠায় Microsoft অংশীদার কেন্দ্রে এই মানটি খুঁজে পেতে পারেন।
- তৈরি করুন ক্লিক করুন।
UWP অ্যাপের জন্য, রিডাইরেক্ট URI আপনার অ্যাপ্লিকেশনের ইউনিক প্যাকেজ সিকিউরিটি আইডেন্টিফায়ার (SID) ব্যবহার করে গঠিত হয়। আপনি আপনার ভিজ্যুয়াল স্টুডিও প্রকল্পের মধ্যে Package.appxmanifest
ফাইলে আপনার অ্যাপের Package SID
খুঁজে পেতে পারেন।
আপনি যখন Google ক্লাউড কনসোলে আপনার ক্লায়েন্ট আইডি তৈরি করেন, তখন আপনাকে অবশ্যই আপনার প্যাকেজ SID-এর ছোট হাতের মান ব্যবহার করে নিম্নলিখিত বিন্যাসে রিডাইরেক্ট URI নির্দিষ্ট করতে হবে:
ms-app://YOUR_APP_PACKAGE_SID
UWP অ্যাপের জন্য, কাস্টম URI স্কিমটি 39 অক্ষরের বেশি হতে পারে না, যেমন Microsoft ডকুমেন্টেশনে উল্লেখ করা হয়েছে।
অ্যাক্সেস স্কোপ সনাক্ত করুন
স্কোপগুলি আপনার অ্যাপ্লিকেশনটিকে শুধুমাত্র প্রয়োজনীয় সংস্থানগুলিতে অ্যাক্সেসের অনুরোধ করতে সক্ষম করে এবং ব্যবহারকারীদের তারা আপনার অ্যাপ্লিকেশনটিতে যে পরিমাণ অ্যাক্সেস দেয় তা নিয়ন্ত্রণ করতে সক্ষম করে। সুতরাং, অনুরোধ করা স্কোপের সংখ্যা এবং ব্যবহারকারীর সম্মতি পাওয়ার সম্ভাবনার মধ্যে একটি বিপরীত সম্পর্ক থাকতে পারে।
আপনি OAuth 2.0 অনুমোদন কার্যকর করা শুরু করার আগে, আমরা সুপারিশ করি যে আপনি সেই সুযোগগুলি সনাক্ত করুন যেগুলি অ্যাক্সেস করার জন্য আপনার অ্যাপের অনুমতির প্রয়োজন হবে৷
YouTube Analytics API নিম্নলিখিত সুযোগগুলি ব্যবহার করে:
ব্যাপ্তি | বর্ণনা |
---|---|
https://www. googleapis. com/ auth/ youtube | আপনার YouTube অ্যাকাউন্ট পরিচালনা করুন |
https://www. googleapis. com/ auth/ youtube. readonly | আপনার YouTube অ্যাকাউন্ট দেখুন |
https://www. googleapis. com/ auth/ youtubepartner | YouTube-এ আপনার সম্পদ এবং সংশ্লিষ্ট বিষয়বস্তু দেখুন ও পরিচালনা করুন |
https://www. googleapis. com/ auth/ yt-analytics-monetary. readonly | আপনার YouTube সামগ্রীর জন্য আর্থিক এবং অ-আর্থিক YouTube বিশ্লেষণ প্রতিবেদনগুলি দেখুন৷ |
https://www. googleapis. com/ auth/ yt-analytics. readonly | আপনার YouTube সামগ্রীর জন্য YouTube বিশ্লেষণ প্রতিবেদনগুলি দেখুন৷ |
YouTube রিপোর্টিং API নিম্নলিখিত সুযোগগুলি ব্যবহার করে:
ব্যাপ্তি | বর্ণনা |
---|---|
https://www. googleapis. com/ auth/ yt-analytics-monetary. readonly | আপনার YouTube সামগ্রীর জন্য আর্থিক এবং অ-আর্থিক YouTube বিশ্লেষণ প্রতিবেদনগুলি দেখুন৷ |
https://www. googleapis. com/ auth/ yt-analytics. readonly | আপনার YouTube সামগ্রীর জন্য YouTube বিশ্লেষণ প্রতিবেদনগুলি দেখুন৷ |
OAuth 2.0 API স্কোপ নথিতে স্কোপের একটি সম্পূর্ণ তালিকা রয়েছে যা আপনি Google API অ্যাক্সেস করতে ব্যবহার করতে পারেন।
OAuth 2.0 অ্যাক্সেস টোকেন প্রাপ্ত করা
নিম্নলিখিত পদক্ষেপগুলি দেখায় যে কীভাবে আপনার অ্যাপ্লিকেশনটি Google-এর OAuth 2.0 সার্ভারের সাথে ইন্টারঅ্যাক্ট করে ব্যবহারকারীর পক্ষে একটি API অনুরোধ সম্পাদন করার জন্য ব্যবহারকারীর সম্মতি পেতে৷ ব্যবহারকারীর অনুমোদনের প্রয়োজন এমন একটি Google API অনুরোধ কার্যকর করার আগে আপনার আবেদনের সেই সম্মতি থাকতে হবে।
ধাপ 1: একটি কোড যাচাইকারী এবং চ্যালেঞ্জ তৈরি করুন
ইনস্টল করা অ্যাপ প্রবাহকে আরও সুরক্ষিত করতে Google কোড এক্সচেঞ্জ (PKCE) প্রোটোকলের জন্য প্রমাণ কী সমর্থন করে। প্রতিটি অনুমোদনের অনুরোধের জন্য একটি অনন্য কোড যাচাইকারী তৈরি করা হয় এবং এর রূপান্তরিত মান, "code_challenge" নামে পরিচিত, অনুমোদনের কোড পাওয়ার জন্য অনুমোদন সার্ভারে পাঠানো হয়।
কোড যাচাইকারী তৈরি করুন
একটি code_verifier
হল একটি উচ্চ-এনট্রপি ক্রিপ্টোগ্রাফিক র্যান্ডম স্ট্রিং যা অসংরক্ষিত অক্ষরগুলি ব্যবহার করে [AZ] / [az] / [0-9] / "-" / "।" / "_" / "~", সর্বনিম্ন দৈর্ঘ্য 43 অক্ষর এবং সর্বোচ্চ 128 অক্ষর।
কোড যাচাইকারীর মান অনুমান করা অবাস্তব করার জন্য যথেষ্ট এনট্রপি থাকা উচিত।
কোড চ্যালেঞ্জ তৈরি করুন
কোড চ্যালেঞ্জ তৈরির দুটি পদ্ধতি সমর্থিত।
কোড চ্যালেঞ্জ জেনারেশন পদ্ধতি | |
---|---|
S256 (প্রস্তাবিত) | কোড চ্যালেঞ্জ হল কোড যাচাইকারীর বেস64URL (কোন প্যাডিং ছাড়াই) এনকোড করা SHA256 হ্যাশ।
|
সমতল | কোড চ্যালেঞ্জটি উপরে উত্পন্ন কোড যাচাইকারীর মতো একই মান।
|
ধাপ 2: Google এর OAuth 2.0 সার্ভারে একটি অনুরোধ পাঠান
ব্যবহারকারীর অনুমোদন পেতে, https://accounts.google.com/o/oauth2/v2/auth
এ Google-এর অনুমোদন সার্ভারে একটি অনুরোধ পাঠান। এই এন্ডপয়েন্ট সক্রিয় সেশন লুকআপ পরিচালনা করে, ব্যবহারকারীকে প্রমাণীকরণ করে এবং ব্যবহারকারীর সম্মতি পায়। এন্ডপয়েন্টটি শুধুমাত্র SSL এর মাধ্যমে অ্যাক্সেসযোগ্য, এবং এটি HTTP (নন-SSL) সংযোগ প্রত্যাখ্যান করে।
অনুমোদন সার্ভার ইনস্টল করা অ্যাপ্লিকেশনের জন্য নিম্নলিখিত ক্যোয়ারী স্ট্রিং পরামিতি সমর্থন করে:
পরামিতি | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
client_id | প্রয়োজন আপনার আবেদনের জন্য ক্লায়েন্ট আইডি। আপনি এই মান খুঁজে পেতে পারেন Cloud ConsoleClients page. | ||||||||||||||||||
redirect_uri | প্রয়োজন Google-এর অনুমোদন সার্ভার কীভাবে আপনার অ্যাপে প্রতিক্রিয়া পাঠায় তা নির্ধারণ করে। ইনস্টল করা অ্যাপগুলির জন্য বেশ কয়েকটি পুনঃনির্দেশ বিকল্প উপলব্ধ রয়েছে এবং আপনি একটি নির্দিষ্ট পুনঃনির্দেশ পদ্ধতির কথা মাথায় রেখে আপনার অনুমোদনের শংসাপত্রগুলি সেট আপ করবেন৷ মানটি অবশ্যই OAuth 2.0 ক্লায়েন্টের জন্য অনুমোদিত রিডাইরেক্ট ইউআরআইগুলির একটির সাথে মিলতে হবে, যা আপনি আপনার ক্লায়েন্টের কনফিগার করেছেন Cloud ConsoleClients page. যদি এই মানটি একটি অনুমোদিত URI-এর সাথে মেলে না, তাহলে আপনি একটি টেবিলটি প্রতিটি পদ্ধতির জন্য উপযুক্ত
| ||||||||||||||||||
response_type | প্রয়োজন Google OAuth 2.0 এন্ডপয়েন্ট একটি অনুমোদন কোড প্রদান করে কিনা তা নির্ধারণ করে। ইনস্টল করা অ্যাপ্লিকেশনের জন্য | ||||||||||||||||||
scope | প্রয়োজন স্কোপের একটি স্থান-সীমাবদ্ধ তালিকা যা ব্যবহারকারীর পক্ষ থেকে আপনার অ্যাপ্লিকেশন অ্যাক্সেস করতে পারে এমন সংস্থানগুলি সনাক্ত করে৷ এই মানগুলি সম্মতি স্ক্রীনকে জানায় যা Google ব্যবহারকারীকে প্রদর্শন করে। স্কোপগুলি আপনার অ্যাপ্লিকেশনটিকে শুধুমাত্র প্রয়োজনীয় সংস্থানগুলিতে অ্যাক্সেসের অনুরোধ করতে সক্ষম করে এবং ব্যবহারকারীদের তারা আপনার অ্যাপ্লিকেশনটিতে যে পরিমাণ অ্যাক্সেস দেয় তা নিয়ন্ত্রণ করতে সক্ষম করে। সুতরাং, অনুরোধ করা স্কোপের সংখ্যা এবং ব্যবহারকারীর সম্মতি পাওয়ার সম্ভাবনার মধ্যে একটি বিপরীত সম্পর্ক রয়েছে। YouTube Analytics API নিম্নলিখিত সুযোগগুলি ব্যবহার করে:
YouTube রিপোর্টিং API নিম্নলিখিত সুযোগগুলি ব্যবহার করে:
OAuth 2.0 API স্কোপ ডকুমেন্ট স্কোপের একটি সম্পূর্ণ তালিকা প্রদান করে যা আপনি Google API অ্যাক্সেস করতে ব্যবহার করতে পারেন। | ||||||||||||||||||
code_challenge | প্রস্তাবিত একটি এনকোড করা | ||||||||||||||||||
code_challenge_method | প্রস্তাবিত একটি | ||||||||||||||||||
state | প্রস্তাবিত আপনার অনুমোদনের অনুরোধ এবং অনুমোদন সার্ভারের প্রতিক্রিয়ার মধ্যে অবস্থা বজায় রাখতে আপনার অ্যাপ্লিকেশন ব্যবহার করে এমন কোনো স্ট্রিং মান নির্দিষ্ট করে। ব্যবহারকারী আপনার অ্যাপ্লিকেশনের অ্যাক্সেস অনুরোধে সম্মতি বা অস্বীকার করার পরে সার্ভারটি সঠিক মানটি ফেরত দেয় যা আপনি একটি আপনি এই প্যারামিটারটি বিভিন্ন উদ্দেশ্যে ব্যবহার করতে পারেন, যেমন আপনার অ্যাপ্লিকেশনে ব্যবহারকারীকে সঠিক সংস্থানের দিকে নির্দেশ করা, ননসেস পাঠানো এবং ক্রস-সাইট অনুরোধ জালিয়াতি প্রশমিত করা। যেহেতু আপনার | ||||||||||||||||||
login_hint | ঐচ্ছিক আপনার অ্যাপ্লিকেশন যদি জানে কোন ব্যবহারকারী প্রমাণীকরণের চেষ্টা করছে, তাহলে এটি এই প্যারামিটারটি ব্যবহার করে Google প্রমাণীকরণ সার্ভারে একটি ইঙ্গিত দিতে পারে। সার্ভার সাইন-ইন ফর্মে ইমেল ক্ষেত্রটি প্রিফিলিং করে বা উপযুক্ত মাল্টি-লগইন সেশন নির্বাচন করে লগইন প্রবাহকে সহজ করার জন্য ইঙ্গিতটি ব্যবহার করে। প্যারামিটার মানটিকে একটি ইমেল ঠিকানা বা |
নমুনা অনুমোদন URL
নীচের ট্যাবগুলি বিভিন্ন পুনঃনির্দেশ URI বিকল্পগুলির জন্য নমুনা অনুমোদন URLগুলি দেখায়৷
প্রতিটি ইউআরএল ব্যবহারকারীর YouTube অ্যানালিটিক্স রিপোর্ট পুনরুদ্ধার করার জন্য অ্যাক্সেসের অনুমতি দেয় এমন একটি সুযোগে অ্যাক্সেসের অনুরোধ করে। redirect_uri
প্যারামিটারের মান ব্যতীত URLগুলি অভিন্ন৷ ইউআরএলগুলিতে প্রয়োজনীয় response_type
এবং client_id
প্যারামিটারের পাশাপাশি ঐচ্ছিক state
প্যারামিটারও রয়েছে। প্রতিটি URL-এ পঠনযোগ্যতার জন্য লাইন বিরতি এবং স্পেস রয়েছে।
কাস্টম ইউআরআই স্কিম
https://accounts.google.com/o/oauth2/v2/auth? scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyt-analytics.readonly& response_type=code& state=security_token%3D138r5719ru3e1%26url%3Dhttps%3A%2F%2Foauth2.example.com%2Ftoken& redirect_uri=com.example.app%3A/oauth2redirect& client_id=client_id
লুপব্যাক আইপি ঠিকানা
https://accounts.google.com/o/oauth2/v2/auth? scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyt-analytics.readonly& response_type=code& state=security_token%3D138r5719ru3e1%26url%3Dhttps%3A%2F%2Foauth2.example.com%2Ftoken& redirect_uri=http%3A//127.0.0.1%3A9004& client_id=client_id
ধাপ 3: Google ব্যবহারকারীকে সম্মতির জন্য অনুরোধ করে
এই ধাপে, ব্যবহারকারী আপনার অ্যাপ্লিকেশনটিকে অনুরোধ করা অ্যাক্সেস মঞ্জুর করবেন কিনা তা সিদ্ধান্ত নেয়। এই পর্যায়ে, Google একটি সম্মতি উইন্ডো প্রদর্শন করে যা আপনার অ্যাপ্লিকেশনের নাম এবং Google API পরিষেবাগুলিকে দেখায় যা ব্যবহারকারীর অনুমোদনের শংসাপত্রের সাথে অ্যাক্সেসের অনুমতির অনুরোধ করছে এবং অ্যাক্সেসের সুযোগের সারসংক্ষেপ। ব্যবহারকারী তারপর আপনার আবেদন দ্বারা অনুরোধ করা এক বা একাধিক স্কোপের অ্যাক্সেস মঞ্জুর করতে বা অনুরোধ প্রত্যাখ্যান করতে সম্মতি দিতে পারেন।
আপনার অ্যাপ্লিকেশনটির এই পর্যায়ে কিছু করার দরকার নেই কারণ এটি Google-এর OAuth 2.0 সার্ভারের প্রতিক্রিয়ার জন্য অপেক্ষা করে যা নির্দেশ করে যে কোনও অ্যাক্সেস দেওয়া হয়েছে কিনা। যে প্রতিক্রিয়া নিম্নলিখিত ধাপে ব্যাখ্যা করা হয়েছে.
ত্রুটি
Google-এর OAuth 2.0 অনুমোদনের এন্ডপয়েন্টের অনুরোধগুলি প্রত্যাশিত প্রমাণীকরণ এবং অনুমোদনের প্রবাহের পরিবর্তে ব্যবহারকারী-মুখী ত্রুটি বার্তাগুলি প্রদর্শন করতে পারে৷ সাধারণ ত্রুটি কোড এবং প্রস্তাবিত রেজোলিউশন হল:
admin_policy_enforced
Google অ্যাকাউন্ট তাদের Google Workspace অ্যাডমিনিস্ট্রেটরের নীতির কারণে অনুরোধ করা এক বা একাধিক স্কোপের অনুমোদন দিতে পারে না। আপনার OAuth ক্লায়েন্ট আইডি-তে স্পষ্টভাবে অ্যাক্সেস না দেওয়া পর্যন্ত অ্যাডমিনিস্ট্রেটর কীভাবে সমস্ত স্কোপ বা সংবেদনশীল এবং সীমাবদ্ধ স্কোপের অ্যাক্সেস সীমাবদ্ধ করতে পারে সে সম্পর্কে আরও তথ্যের জন্য কোন থার্ড-পার্টি এবং অভ্যন্তরীণ অ্যাপগুলি Google Workspace ডেটা অ্যাক্সেস করতে পারে তা নিয়ন্ত্রণ করুন Google Workspace অ্যাডমিন সহায়তা নিবন্ধটি দেখুন।
disallowed_useragent
অনুমোদনের এন্ডপয়েন্টটি Google-এর OAuth 2.0 নীতি দ্বারা অনুমোদিত একটি এমবেডেড ব্যবহারকারী-এজেন্টের ভিতরে প্রদর্শিত হয়৷
WKWebView
এ অনুমোদনের অনুরোধ খোলার সময় iOS এবং macOS ডেভেলপাররা এই ত্রুটির সম্মুখীন হতে পারে। বিকাশকারীদের পরিবর্তে iOS লাইব্রেরিগুলি ব্যবহার করা উচিত যেমন iOS এর জন্য Google সাইন-ইন বা iOS এর জন্য OpenID ফাউন্ডেশনের AppAuth ৷
যখন কোনো iOS বা macOS অ্যাপ এমবেডেড ইউজার-এজেন্টে একটি সাধারণ ওয়েব লিঙ্ক খোলে এবং কোনো ব্যবহারকারী আপনার সাইট থেকে Google-এর OAuth 2.0 অনুমোদনের শেষ পয়েন্টে নেভিগেট করে তখন ওয়েব ডেভেলপাররা এই ত্রুটির সম্মুখীন হতে পারেন। বিকাশকারীদের অপারেটিং সিস্টেমের ডিফল্ট লিঙ্ক হ্যান্ডলারে সাধারণ লিঙ্কগুলি খোলার অনুমতি দেওয়া উচিত, যাতে ইউনিভার্সাল লিঙ্ক হ্যান্ডলার বা ডিফল্ট ব্রাউজার অ্যাপ উভয়ই অন্তর্ভুক্ত থাকে। SFSafariViewController
লাইব্রেরিও একটি সমর্থিত বিকল্প।
org_internal
অনুরোধে OAuth ক্লায়েন্ট আইডি একটি নির্দিষ্ট Google ক্লাউড সংস্থার Google অ্যাকাউন্টগুলিতে অ্যাক্সেস সীমিত করে এমন একটি প্রকল্পের অংশ৷ এই কনফিগারেশন বিকল্প সম্পর্কে আরও তথ্যের জন্য আপনার OAuth সম্মতি স্ক্রীন সহায়তা নিবন্ধ সেট আপ করার ব্যবহারকারীর প্রকার বিভাগটি দেখুন।
deleted_client
অনুরোধ করতে ব্যবহৃত OAuth ক্লায়েন্ট মুছে ফেলা হয়েছে। অব্যবহৃত ক্লায়েন্টদের ক্ষেত্রে ম্যানুয়ালি বা স্বয়ংক্রিয়ভাবে মুছে ফেলা হতে পারে। মুছে ফেলা ক্লায়েন্ট মুছে ফেলার 30 দিনের মধ্যে পুনরুদ্ধার করা যেতে পারে। আরও জানুন
invalid_grant
আপনি যদি একটি কোড যাচাইকারী এবং চ্যালেঞ্জ ব্যবহার করেন, তাহলে code_callenge
প্যারামিটারটি অবৈধ বা অনুপস্থিত৷ code_challenge
প্যারামিটার সঠিকভাবে সেট করা আছে তা নিশ্চিত করুন।
একটি অ্যাক্সেস টোকেন রিফ্রেশ করার সময় , টোকেনের মেয়াদ শেষ হয়ে যেতে পারে বা অবৈধ হয়ে গেছে। ব্যবহারকারীকে আবার প্রমাণীকরণ করুন এবং নতুন টোকেন পাওয়ার জন্য ব্যবহারকারীর সম্মতি চান। আপনি যদি ক্রমাগত এই ত্রুটিটি দেখতে থাকেন তবে নিশ্চিত করুন যে আপনার অ্যাপ্লিকেশনটি সঠিকভাবে কনফিগার করা হয়েছে এবং আপনি আপনার অনুরোধে সঠিক টোকেন এবং প্যারামিটার ব্যবহার করছেন। অন্যথায়, ব্যবহারকারীর অ্যাকাউন্ট মুছে ফেলা বা নিষ্ক্রিয় করা হতে পারে।
redirect_uri_mismatch
অনুমোদনের অনুরোধে পাস করা redirect_uri
OAuth ক্লায়েন্ট আইডির জন্য অনুমোদিত রিডাইরেক্ট URI-এর সাথে মেলে না। তে অনুমোদিত পুনঃনির্দেশ ইউআরআই পর্যালোচনা করুন৷ Google Cloud ConsoleClients page.
পাস করা redirect_uri
ক্লায়েন্ট প্রকারের জন্য অবৈধ হতে পারে।
redirect_uri
প্যারামিটার OAuth আউট-অফ-ব্যান্ড (OOB) প্রবাহকে নির্দেশ করতে পারে যা অবমূল্যায়িত হয়েছে এবং আর সমর্থিত নয়। আপনার ইন্টিগ্রেশন আপডেট করতে মাইগ্রেশন গাইড পড়ুন।
invalid_request
আপনার অনুরোধে কিছু ভুল ছিল। এটি বেশ কয়েকটি কারণে হতে পারে:
- অনুরোধটি সঠিকভাবে ফরম্যাট করা হয়নি
- অনুরোধে প্রয়োজনীয় পরামিতি অনুপস্থিত ছিল
- অনুরোধটি একটি অনুমোদন পদ্ধতি ব্যবহার করে যা Google সমর্থন করে না। আপনার OAuth ইন্টিগ্রেশন একটি প্রস্তাবিত ইন্টিগ্রেশন পদ্ধতি ব্যবহার করে যাচাই করুন
- রিডাইরেক্ট ইউরির জন্য একটি অসমর্থিত কাস্টম স্কিম ব্যবহার করা হয়েছে। আপনি যদি ত্রুটি বার্তা দেখতে পান কাস্টম ইউআরআই স্কিম অ্যান্ড্রয়েড বা ক্রোম অ্যাপে সমর্থিত নয় , কাস্টম ইউআরআই স্কিম বিকল্প সম্পর্কে আরও জানুন ।
ধাপ 4: OAuth 2.0 সার্ভার প্রতিক্রিয়া পরিচালনা করুন
আপনার আবেদনটি যে পদ্ধতিতে অনুমোদনের প্রতিক্রিয়া গ্রহণ করে তা নির্ভর করে এটি যে রিডাইরেক্ট ইউআরআই স্কিমটি ব্যবহার করে তার উপর। স্কিম নির্বিশেষে, প্রতিক্রিয়াতে একটি অনুমোদন কোড ( code
) বা একটি ত্রুটি ( error
) থাকবে। উদাহরণস্বরূপ, error=access_denied
নির্দেশ করে যে ব্যবহারকারী অনুরোধটি প্রত্যাখ্যান করেছেন।
যদি ব্যবহারকারী আপনার অ্যাপ্লিকেশনে অ্যাক্সেস মঞ্জুর করে, আপনি পরবর্তী ধাপে বর্ণিত অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেনের জন্য অনুমোদন কোড বিনিময় করতে পারেন।
ধাপ 5: রিফ্রেশ এবং অ্যাক্সেস টোকেনগুলির জন্য এক্সচেঞ্জ অনুমোদন কোড
একটি অ্যাক্সেস টোকেনের জন্য একটি অনুমোদন কোড বিনিময় করতে, https://oauth2.googleapis.com/token
এন্ডপয়েন্টে কল করুন এবং নিম্নলিখিত প্যারামিটারগুলি সেট করুন:
ক্ষেত্র | |
---|---|
client_id | ক্লায়েন্ট আইডি থেকে প্রাপ্ত Cloud ConsoleClients page. |
client_secret | ক্লায়েন্ট সিক্রেট থেকে প্রাপ্ত Cloud ConsoleClients page. |
code | অনুমোদন কোড প্রাথমিক অনুরোধ থেকে ফিরে. |
code_verifier | কোড যাচাইকারী আপনি ধাপ 1 এ তৈরি করেছেন। |
grant_type | OAuth 2.0 স্পেসিফিকেশনে যেমন সংজ্ঞায়িত করা হয়েছে , এই ক্ষেত্রের মান অবশ্যই authorization_code এ সেট করতে হবে। |
redirect_uri | আপনার প্রোজেক্টের জন্য তালিকাভুক্ত রিডাইরেক্ট ইউআরআইগুলির মধ্যে একটি Cloud ConsoleClients page প্রদত্ত client_id জন্য। |
নিম্নলিখিত স্নিপেট একটি নমুনা অনুরোধ দেখায়:
POST /token HTTP/1.1 Host: oauth2.googleapis.com Content-Type: application/x-www-form-urlencoded code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp7& client_id=your_client_id& client_secret=your_client_secret& redirect_uri=http://127.0.0.1:9004& grant_type=authorization_code
Google একটি JSON অবজেক্ট ফেরত দিয়ে এই অনুরোধে সাড়া দেয় যাতে একটি স্বল্পকালীন অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেন রয়েছে।
প্রতিক্রিয়াতে নিম্নলিখিত ক্ষেত্রগুলি রয়েছে:
ক্ষেত্র | |
---|---|
access_token | একটি Google API অনুরোধ অনুমোদন করার জন্য আপনার অ্যাপ্লিকেশন যে টোকেন পাঠায়। |
expires_in | সেকেন্ডে অ্যাক্সেস টোকেনের অবশিষ্ট জীবনকাল। |
id_token | দ্রষ্টব্য: এই সম্পত্তিটি শুধুমাত্র তখনই ফেরত দেওয়া হয় যদি আপনার অনুরোধে একটি পরিচয়ের সুযোগ অন্তর্ভুক্ত থাকে, যেমন openid , profile বা email । মান হল একটি JSON ওয়েব টোকেন (JWT) যাতে ব্যবহারকারী সম্পর্কে ডিজিটালি স্বাক্ষরিত পরিচয় তথ্য থাকে। |
refresh_token | একটি টোকেন যা আপনি একটি নতুন অ্যাক্সেস টোকেন পেতে ব্যবহার করতে পারেন। রিফ্রেশ টোকেন বৈধ থাকে যতক্ষণ না ব্যবহারকারী অ্যাক্সেস প্রত্যাহার করে বা রিফ্রেশ টোকেনের মেয়াদ শেষ না হয়। মনে রাখবেন যে রিফ্রেশ টোকেন সবসময় ইনস্টল করা অ্যাপ্লিকেশনের জন্য ফেরত দেওয়া হয়। |
refresh_token_expires_in | সেকেন্ডে রিফ্রেশ টোকেনের অবশিষ্ট জীবনকাল। এই মানটি তখনই সেট করা হয় যখন ব্যবহারকারী সময়-ভিত্তিক অ্যাক্সেস মঞ্জুর করে৷ |
scope | access_token দ্বারা প্রদত্ত অ্যাক্সেসের সুযোগগুলি স্থান-সীমাবদ্ধ, কেস-সংবেদনশীল স্ট্রিংগুলির একটি তালিকা হিসাবে প্রকাশ করা হয়েছে। |
token_type | টোকেনের ধরন ফিরে এসেছে। এই সময়ে, এই ক্ষেত্রের মান সর্বদা Bearer এ সেট করা থাকে। |
নিম্নলিখিত স্নিপেট একটি নমুনা প্রতিক্রিয়া দেখায়:
{ "access_token": "1/fFAGRNJru1FTz70BzhT3Zg", "expires_in": 3920, "token_type": "Bearer", "scope": "https://www.googleapis.com/auth/yt-analytics.readonly https://www.googleapis.com/auth/calendar.readonly", "refresh_token": "1//xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI" }
ধাপ 6: ব্যবহারকারীদের মঞ্জুর করা সুযোগগুলি পরীক্ষা করুন৷
একাধিক অনুমতির (স্কোপের) অনুরোধ করার সময়, ব্যবহারকারীরা আপনার অ্যাপকে তাদের সবকটিতে অ্যাক্সেস নাও দিতে পারে। আপনার অ্যাপটি অবশ্যই যাচাই করতে হবে যে কোন স্কোপগুলি আসলে মঞ্জুর করা হয়েছে এবং বিশেষত সেই অস্বীকৃত স্কোপের উপর নির্ভর করে এমন বৈশিষ্ট্যগুলিকে অক্ষম করে কিছু অনুমতি অস্বীকার করা হয় এমন পরিস্থিতিগুলিকে সুন্দরভাবে পরিচালনা করতে হবে।
যাইহোক, ব্যতিক্রম আছে. Google Workspace এন্টারপ্রাইজ অ্যাপ যাতে ডোমেন-ওয়াইড অথরিটি অর্পণ করা হয় , অথবা বিশ্বস্ত হিসেবে চিহ্নিত অ্যাপগুলি দানাদার অনুমতির সম্মতি স্ক্রীনকে বাইপাস করে। এই অ্যাপগুলির জন্য, ব্যবহারকারীরা দানাদার অনুমতি সম্মতি স্ক্রীন দেখতে পাবেন না। পরিবর্তে, আপনার অ্যাপ হয় সব অনুরোধ করা সুযোগ পাবে বা কোনোটিই পাবে না।
আরও বিশদ তথ্যের জন্য, দানাদার অনুমতিগুলি কীভাবে পরিচালনা করবেন তা দেখুন।
ব্যবহারকারী আপনার অ্যাপ্লিকেশনকে একটি নির্দিষ্ট সুযোগে অ্যাক্সেস দিয়েছে কিনা তা পরীক্ষা করতে, অ্যাক্সেস টোকেন প্রতিক্রিয়াতে scope
ক্ষেত্রটি পরীক্ষা করুন। অ্যাক্সেস_টোকেন দ্বারা প্রদত্ত অ্যাক্সেসের সুযোগগুলি স্থান-সীমাবদ্ধ, কেস-সংবেদনশীল স্ট্রিংগুলির একটি তালিকা হিসাবে প্রকাশ করা হয়েছে।
উদাহরণস্বরূপ, নিম্নলিখিত নমুনা অ্যাক্সেস টোকেন প্রতিক্রিয়া ইঙ্গিত করে যে ব্যবহারকারী আপনার অ্যাপ্লিকেশনটিকে শুধুমাত্র-পঠনযোগ্য ড্রাইভ কার্যকলাপ এবং ক্যালেন্ডার ইভেন্ট অনুমতিগুলিতে অ্যাক্সেস দিয়েছেন:
{ "access_token": "1/fFAGRNJru1FTz70BzhT3Zg", "expires_in": 3920, "token_type": "Bearer", "scope": "https://www.googleapis.com/auth/yt-analytics.readonly https://www.googleapis.com/auth/calendar.readonly", "refresh_token": "1//xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI" }
Google API কল করুন
আপনার অ্যাপ্লিকেশন একটি অ্যাক্সেস টোকেন প্রাপ্ত করার পরে, যদি API দ্বারা প্রয়োজনীয় অ্যাক্সেসের সুযোগ মঞ্জুর করা হয় তবে আপনি একটি প্রদত্ত ব্যবহারকারী অ্যাকাউন্টের হয়ে একটি Google API এ কল করতে টোকেনটি ব্যবহার করতে পারেন। এটি করার জন্য, একটি access_token
ক্যোয়ারী প্যারামিটার বা একটি Authorization
HTTP শিরোনাম Bearer
মান অন্তর্ভুক্ত করে API-এর একটি অনুরোধে অ্যাক্সেস টোকেন অন্তর্ভুক্ত করুন। যখন সম্ভব, HTTP শিরোনামটি পছন্দনীয়, কারণ সার্ভার লগগুলিতে কোয়েরি স্ট্রিংগুলি দৃশ্যমান হয়। বেশিরভাগ ক্ষেত্রে আপনি Google API-এ আপনার কলগুলি সেট আপ করতে একটি ক্লায়েন্ট লাইব্রেরি ব্যবহার করতে পারেন (উদাহরণস্বরূপ, যখন YouTube Analytics API এ কল করা হয় )।
মনে রাখবেন যে YouTube Analytics API পরিষেবা অ্যাকাউন্ট প্রবাহ সমর্থন করে না। YouTube রিপোর্টিং API শুধুমাত্র সেই YouTube বিষয়বস্তুর মালিকদের জন্য পরিষেবা অ্যাকাউন্ট সমর্থন করে যারা একাধিক YouTube চ্যানেলের মালিক এবং পরিচালনা করে, যেমন রেকর্ড লেবেল এবং মুভি স্টুডিও৷
আপনি সমস্ত Google API ব্যবহার করে দেখতে পারেন এবং OAuth 2.0 খেলার মাঠে তাদের স্কোপ দেখতে পারেন।
HTTP GET উদাহরণ
Authorization: Bearer
HTTP হেডার ব্যবহার করে reports.query
এন্ডপয়েন্টে একটি কল (YouTube Analytics API) নিচের মত দেখতে হতে পারে। মনে রাখবেন যে আপনাকে আপনার নিজস্ব অ্যাক্সেস টোকেন নির্দিষ্ট করতে হবে:
GET /youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date=2016-05-01&end-date=2016-06-30&metrics=views HTTP/1.1 Host: www.googleapis.com Authorization: Bearer access_token
এখানে access_token
ক্যোয়ারী স্ট্রিং প্যারামিটার ব্যবহার করে প্রমাণীকৃত ব্যবহারকারীর জন্য একই API-তে একটি কল রয়েছে:
GET https://www.googleapis.com/youtube/analytics/v1/reports?access_token=access_token&ids=channel%3D%3DMINE&start-date=2016-05-01&end-date=2016-06-30&metrics=views
curl
উদাহরণ
আপনি curl
কমান্ড-লাইন অ্যাপ্লিকেশনের মাধ্যমে এই কমান্ডগুলি পরীক্ষা করতে পারেন। এখানে একটি উদাহরণ যা HTTP হেডার বিকল্প ব্যবহার করে (পছন্দের):
curl -H "Authorization: Bearer access_token" https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date=2016-05-01&end-date=2016-06-30&metrics=views
অথবা, বিকল্পভাবে, ক্যোয়ারী স্ট্রিং প্যারামিটার বিকল্প:
curl https://www.googleapis.com/youtube/analytics/v1/reports?access_token=access_token&ids=channel%3D%3DMINE&start-date=2016-05-01&end-date=2016-06-30&metrics=views
একটি অ্যাক্সেস টোকেন রিফ্রেশ করুন
অ্যাক্সেস টোকেনগুলি পর্যায়ক্রমে মেয়াদ শেষ হয় এবং একটি সম্পর্কিত API অনুরোধের জন্য অবৈধ শংসাপত্র হয়ে যায়। আপনি যদি টোকেনের সাথে যুক্ত স্কোপে অফলাইন অ্যাক্সেসের অনুরোধ করেন তবে আপনি অনুমতির জন্য ব্যবহারকারীকে অনুরোধ না করে একটি অ্যাক্সেস টোকেন রিফ্রেশ করতে পারেন (ব্যবহারকারী উপস্থিত না থাকা সহ)।
একটি অ্যাক্সেস টোকেন রিফ্রেশ করতে, আপনার অ্যাপ্লিকেশনটি Google এর অনুমোদন সার্ভারে একটি HTTPS POST
অনুরোধ পাঠায় ( https://oauth2.googleapis.com/token
) যাতে নিম্নলিখিত প্যারামিটারগুলি অন্তর্ভুক্ত থাকে:
ক্ষেত্র | |
---|---|
client_id | ক্লায়েন্ট আইডি থেকে প্রাপ্ত API Console. |
client_secret | ক্লায়েন্ট সিক্রেট থেকে প্রাপ্ত API Console. ( client_secret অ্যান্ড্রয়েড, আইওএস, বা ক্রোম অ্যাপ্লিকেশন হিসাবে নিবন্ধিত ক্লায়েন্টদের অনুরোধের ক্ষেত্রে প্রযোজ্য নয়৷) |
grant_type | OAuth 2.0 স্পেসিফিকেশনে যেমন সংজ্ঞায়িত করা হয়েছে , এই ক্ষেত্রের মান অবশ্যই refresh_token এ সেট করতে হবে। |
refresh_token | রিফ্রেশ টোকেন অনুমোদন কোড বিনিময় থেকে ফিরে. |
নিম্নলিখিত স্নিপেট একটি নমুনা অনুরোধ দেখায়:
POST /token HTTP/1.1 Host: oauth2.googleapis.com Content-Type: application/x-www-form-urlencoded client_id=your_client_id& client_secret=your_client_secret& refresh_token=refresh_token& grant_type=refresh_token
যতক্ষণ না ব্যবহারকারী অ্যাপ্লিকেশনটিতে দেওয়া অ্যাক্সেস প্রত্যাহার না করে, টোকেন সার্ভার একটি JSON অবজেক্ট ফেরত দেয় যাতে একটি নতুন অ্যাক্সেস টোকেন রয়েছে। নিম্নলিখিত স্নিপেট একটি নমুনা প্রতিক্রিয়া দেখায়:
{ "access_token": "1/fFAGRNJru1FTz70BzhT3Zg", "expires_in": 3920, "scope": "https://www.googleapis.com/auth/drive.metadata.readonly https://www.googleapis.com/auth/calendar.readonly", "token_type": "Bearer" }
নোট করুন যে রিফ্রেশ টোকেনের সংখ্যার উপর সীমা আছে যা জারি করা হবে; প্রতি ক্লায়েন্ট/ব্যবহারকারী সংমিশ্রণে একটি সীমা এবং সমস্ত ক্লায়েন্ট জুড়ে ব্যবহারকারী প্রতি আরেকটি। আপনার দীর্ঘমেয়াদী সঞ্চয়স্থানে রিফ্রেশ টোকেন সংরক্ষণ করা উচিত এবং যতক্ষণ তারা বৈধ থাকবে ততক্ষণ সেগুলি ব্যবহার করা চালিয়ে যেতে হবে। আপনার অ্যাপ্লিকেশন যদি অনেকগুলি রিফ্রেশ টোকেনের অনুরোধ করে, তবে এটি এই সীমার মধ্যে চলে যেতে পারে, এই ক্ষেত্রে পুরানো রিফ্রেশ টোকেনগুলি কাজ করা বন্ধ করে দেবে৷
টোকেন প্রত্যাহার
কিছু ক্ষেত্রে একজন ব্যবহারকারী একটি অ্যাপ্লিকেশনে দেওয়া অ্যাক্সেস প্রত্যাহার করতে চাইতে পারেন। একজন ব্যবহারকারী অ্যাকাউন্ট সেটিংসে গিয়ে অ্যাক্সেস প্রত্যাহার করতে পারেন। আরও তথ্যের জন্য আপনার অ্যাকাউন্ট সমর্থন নথিতে অ্যাক্সেস সহ তৃতীয় পক্ষের সাইট এবং অ্যাপগুলির সাইট বা অ্যাপ অ্যাক্সেস সরান বিভাগটি দেখুন।
এটি একটি অ্যাপ্লিকেশনের জন্য প্রোগ্রাম্যাটিকভাবে প্রদত্ত অ্যাক্সেস প্রত্যাহার করাও সম্ভব। প্রোগ্রাম্যাটিক প্রত্যাহার করা গুরুত্বপূর্ণ যেখানে কোনও ব্যবহারকারী সদস্যতা ত্যাগ করে, কোনও অ্যাপ্লিকেশন সরিয়ে দেয় বা কোনও অ্যাপের জন্য প্রয়োজনীয় API সংস্থানগুলি উল্লেখযোগ্যভাবে পরিবর্তিত হয়েছে৷ অন্য কথায়, অপসারণ প্রক্রিয়ার অংশে একটি API অনুরোধ অন্তর্ভুক্ত থাকতে পারে যাতে নিশ্চিত করা যায় যে অ্যাপ্লিকেশনটিতে পূর্বে দেওয়া অনুমতিগুলি সরানো হয়েছে।
প্রোগ্রাম্যাটিকভাবে একটি টোকেন প্রত্যাহার করতে, আপনার অ্যাপ্লিকেশনটি https://oauth2.googleapis.com/revoke
এ একটি অনুরোধ করে এবং একটি প্যারামিটার হিসাবে টোকেন অন্তর্ভুক্ত করে:
curl -d -X -POST --header "Content-type:application/x-www-form-urlencoded" \ https://oauth2.googleapis.com/revoke?token={token}
টোকেন একটি অ্যাক্সেস টোকেন বা একটি রিফ্রেশ টোকেন হতে পারে। যদি টোকেনটি একটি অ্যাক্সেস টোকেন হয় এবং এটিতে একটি সংশ্লিষ্ট রিফ্রেশ টোকেন থাকে তবে রিফ্রেশ টোকেনটিও প্রত্যাহার করা হবে।
যদি প্রত্যাহার সফলভাবে প্রক্রিয়া করা হয়, তাহলে প্রতিক্রিয়াটির HTTP স্ট্যাটাস কোড হল 200
। ত্রুটি অবস্থার জন্য, একটি এইচটিটিপি স্ট্যাটাস কোড 400
একটি ত্রুটি কোড সহ ফেরত দেওয়া হয়।
অ্যাপ রিডাইরেক্ট পদ্ধতি
কাস্টম ইউআরআই স্কিম
কাস্টম ইউআরআই স্কিম হল ডিপলিংকিংয়ের একটি ফর্ম যা আপনার অ্যাপ খুলতে একটি কাস্টম-সংজ্ঞায়িত স্কিম ব্যবহার করে।
Chrome অ্যাপে কাস্টম URI স্কিম ব্যবহার করার বিকল্প
ক্রোম আইডেন্টিটি API ব্যবহার করুন যা সরাসরি আপনার অ্যাপে OAuth 2.0 প্রতিক্রিয়া প্রদান করে, একটি পুনঃনির্দেশিত URI-এর প্রয়োজনীয়তা দূর করে৷
লুপব্যাক আইপি ঠিকানা (macOS, Linux, Windows ডেস্কটপ)
এই URL ব্যবহার করে অনুমোদন কোড পেতে, আপনার আবেদন স্থানীয় ওয়েব সার্ভারে শুনতে হবে। এটা অনেক প্ল্যাটফর্মে সম্ভব, কিন্তু সব নয়। যাইহোক, যদি আপনার প্ল্যাটফর্ম এটি সমর্থন করে, এটি অনুমোদন কোড পাওয়ার জন্য প্রস্তাবিত পদ্ধতি।
যখন আপনার অ্যাপ অনুমোদনের প্রতিক্রিয়া পায়, সর্বোত্তম ব্যবহারযোগ্যতার জন্য এটি একটি HTML পৃষ্ঠা প্রদর্শন করে প্রতিক্রিয়া জানায় যা ব্যবহারকারীকে ব্রাউজারটি বন্ধ করতে এবং আপনার অ্যাপে ফিরে যেতে নির্দেশ দেয়।
প্রস্তাবিত ব্যবহার | macOS, Linux, এবং Windows ডেস্কটপ (কিন্তু ইউনিভার্সাল উইন্ডোজ প্ল্যাটফর্ম নয়) অ্যাপ |
ফর্ম মান | অ্যাপ্লিকেশনের ধরনটি ডেস্কটপ অ্যাপে সেট করুন। |
ম্যানুয়াল কপি/পেস্ট (অপ্রচলিত)
আপনার অ্যাপস রক্ষা করুন
Chrome-এর জন্য অ্যাপের মালিকানা যাচাই করুন
অ্যাপ ছদ্মবেশের ঝুঁকি কমাতে আপনি আপনার আবেদনের মালিকানা যাচাই করতে পারেন।
যাচাইকরণ প্রক্রিয়া সম্পূর্ণ করতে, আপনি আপনার Chrome ওয়েব স্টোর ডেভেলপার অ্যাকাউন্ট ব্যবহার করবেন। একটি সফল যাচাইকরণের জন্য নিম্নলিখিত প্রয়োজনীয়তাগুলি অবশ্যই পূরণ করতে হবে:
- আপনি যে Chrome এক্সটেনশন OAuth ক্লায়েন্টটির জন্য যাচাইকরণ সম্পূর্ণ করছেন সেই আইটেম আইডি সহ আপনার অবশ্যই Chrome ওয়েব স্টোর ডেভেলপার ড্যাশবোর্ডে একটি নিবন্ধিত আইটেম থাকতে হবে৷
- আপনাকে অবশ্যই Chrome ওয়েব স্টোর আইটেমের জন্য একজন প্রকাশক হতে হবে৷ Chrome ওয়েব স্টোর ডেভেলপার ড্যাশবোর্ডে অ্যাক্সেস ম্যানেজমেন্ট সম্পর্কে আরও জানুন ।
Chrome এক্সটেনশন ক্লায়েন্টের অ্যাপ মালিকানা যাচাই বিভাগে, যাচাইকরণ প্রক্রিয়াটি সম্পূর্ণ করতে মালিকানা যাচাই বোতামে ক্লিক করুন।
দ্রষ্টব্য: আপনার অ্যাকাউন্টে অ্যাক্সেস দেওয়ার পরে যাচাইকরণ প্রক্রিয়াটি সম্পূর্ণ করার আগে কয়েক মিনিট অপেক্ষা করুন।
যাচাইকরণ সফল হলে, যাচাইকরণ প্রক্রিয়ার সাফল্য নিশ্চিত করতে একটি বিজ্ঞপ্তি প্রদর্শিত হবে। অন্যথায়, একটি ত্রুটি প্রম্পট দেখানো হবে।
একটি ব্যর্থ যাচাইকরণ ঠিক করতে, নিম্নলিখিত চেষ্টা করুন:
- নিশ্চিত করুন যে Chrome ওয়েব স্টোর ডেভেলপার ড্যাশবোর্ডে আপনি যে Chrome এক্সটেনশন OAuth ক্লায়েন্টটির জন্য যাচাইকরণ সম্পূর্ণ করছেন সেই আইটেম আইডি সহ একটি নিবন্ধিত আইটেম আছে৷
- নিশ্চিত করুন যে আপনি অ্যাপটির একজন প্রকাশক, অর্থাৎ, আপনাকে অবশ্যই অ্যাপটির স্বতন্ত্র প্রকাশক বা অ্যাপটির গ্রুপ প্রকাশকের সদস্য হতে হবে। Chrome ওয়েব স্টোর ডেভেলপার ড্যাশবোর্ডে অ্যাক্সেস ম্যানেজমেন্ট সম্পর্কে আরও জানুন ।
- আপনি যদি এইমাত্র আপনার গোষ্ঠী প্রকাশকের তালিকা আপডেট করে থাকেন, তাহলে যাচাই করুন যে গোষ্ঠী প্রকাশকের সদস্যতা তালিকাটি Chrome ওয়েব স্টোর ডেভেলপার ড্যাশবোর্ডে সিঙ্ক হয়েছে৷ আপনার প্রকাশক সদস্যতা তালিকা সিঙ্ক সম্পর্কে আরও জানুন .
অ্যাপ চেক (শুধুমাত্র iOS)
অ্যাপ চেক বৈশিষ্ট্যটি Google OAuth 2.0 এন্ডপয়েন্টে করা অনুরোধগুলি আপনার খাঁটি অ্যাপ্লিকেশন থেকে এসেছে কিনা তা যাচাই করতে Apple-এর App Attest পরিষেবা ব্যবহার করে আপনার iOS অ্যাপ্লিকেশনগুলিকে অননুমোদিত ব্যবহার থেকে রক্ষা করতে সহায়তা করে৷ এটি অ্যাপের ছদ্মবেশের ঝুঁকি কমাতে সাহায্য করে।
আপনার iOS ক্লায়েন্টের জন্য অ্যাপ চেক সক্ষম করুন
আপনার iOS ক্লায়েন্টের জন্য অ্যাপ চেক সফলভাবে সক্ষম করতে নিম্নলিখিত প্রয়োজনীয়তা পূরণ করতে হবে:- আপনার iOS ক্লায়েন্টের জন্য আপনাকে অবশ্যই একটি টিম আইডি নির্দিষ্ট করতে হবে।
- আপনি অবশ্যই আপনার বান্ডেল আইডিতে একটি ওয়াইল্ডকার্ড ব্যবহার করবেন না কারণ এটি একাধিক অ্যাপের সমাধান করতে পারে। এর মানে হল যে বান্ডেল আইডিতে তারকাচিহ্ন (*) প্রতীক অন্তর্ভুক্ত করা উচিত নয়।
অ্যাপ চেক সক্ষম করার পরে, আপনি OAuth ক্লায়েন্টের সম্পাদনা দৃশ্যে আপনার ক্লায়েন্ট থেকে OAuth অনুরোধের সাথে সম্পর্কিত মেট্রিকগুলি দেখতে শুরু করবেন। আপনি অ্যাপ চেক প্রয়োগ না করা পর্যন্ত অযাচাইকৃত উত্স থেকে অনুরোধগুলি ব্লক করা হবে না৷ মেট্রিক্স পর্যবেক্ষণ পৃষ্ঠার তথ্য আপনাকে কখন প্রয়োগ শুরু করতে হবে তা নির্ধারণ করতে সহায়তা করতে পারে।
আপনার iOS অ্যাপের জন্য অ্যাপ চেক সক্ষম করার সময় আপনি অ্যাপ চেক বৈশিষ্ট্য সম্পর্কিত ত্রুটিগুলি দেখতে পারেন। এই ত্রুটিগুলি ঠিক করতে, নিম্নলিখিতগুলি চেষ্টা করুন:
- আপনার নির্দিষ্ট করা বান্ডেল আইডি এবং টিম আইডি বৈধ কিনা তা যাচাই করুন।
- আপনি বান্ডেল আইডির জন্য ওয়াইল্ডকার্ড ব্যবহার করছেন না তা যাচাই করুন।
আপনার iOS ক্লায়েন্টের জন্য অ্যাপ চেক প্রয়োগ করুন
আপনার অ্যাপের জন্য অ্যাপ চেক সক্ষম করা স্বয়ংক্রিয়ভাবে অচেনা অনুরোধগুলিকে ব্লক করে না। এই সুরক্ষা কার্যকর করতে, আপনার iOS ক্লায়েন্টের সম্পাদনা দৃশ্যে যান৷ সেখানে, আপনি iOS বিভাগের জন্য Google পরিচয়ের অধীনে পৃষ্ঠার ডানদিকে অ্যাপ চেক মেট্রিক্স দেখতে পাবেন। মেট্রিক্স নিম্নলিখিত তথ্য অন্তর্ভুক্ত:- যাচাইকৃত অনুরোধের সংখ্যা - একটি বৈধ অ্যাপ চেক টোকেন আছে এমন অনুরোধ। আপনি অ্যাপ চেক এনফোর্সমেন্ট সক্ষম করার পরে, শুধুমাত্র এই বিভাগের অনুরোধগুলি সফল হবে৷
- যাচাইকৃত অনুরোধের সংখ্যা: সম্ভবত পুরানো ক্লায়েন্ট অনুরোধ - একটি অ্যাপ চেক টোকেন অনুপস্থিত অনুরোধ; এই অনুরোধগুলি আপনার অ্যাপের একটি পুরানো সংস্করণ থেকে হতে পারে যাতে একটি অ্যাপ চেক বাস্তবায়ন অন্তর্ভুক্ত নয়।
- অযাচাইকৃত অনুরোধের সংখ্যা: অজানা মূল অনুরোধ - একটি অ্যাপ চেক টোকেন অনুপস্থিত অনুরোধ যা আপনার অ্যাপ থেকে আসছে বলে মনে হচ্ছে না।
- অযাচাইকৃত অনুরোধের সংখ্যা: অবৈধ অনুরোধ - একটি অবৈধ অ্যাপ চেক টোকেন সহ অনুরোধ, যা আপনার অ্যাপের ছদ্মবেশী করার চেষ্টাকারী একটি অপ্রমাণিত ক্লায়েন্ট বা অনুকরণ করা পরিবেশ থেকে হতে পারে।
অ্যাপ চেক কার্যকর করতে, ENFORCE বোতামে ক্লিক করুন এবং আপনার পছন্দ নিশ্চিত করুন। একবার এনফোর্সমেন্ট সক্রিয় হলে, আপনার ক্লায়েন্টের সমস্ত অযাচাইকৃত অনুরোধ প্রত্যাখ্যান করা হবে।
দ্রষ্টব্য : আপনি প্রয়োগকরণ সক্ষম করার পরে, পরিবর্তনগুলি কার্যকর হতে 15 মিনিট পর্যন্ত সময় লাগতে পারে৷
আপনার iOS ক্লায়েন্টের জন্য অ্যাপ চেক আনএনফোর্স করুন
আপনার অ্যাপ্লিকেশানের জন্য অ্যাপ্লিকেশান চেক আনফোর্স করা এনফোর্সমেন্ট বন্ধ করবে এবং আপনার ক্লায়েন্ট থেকে Google OAuth 2.0 এন্ডপয়েন্টে সমস্ত অনুরোধ অনুমোদন করবে, যার মধ্যে যাচাই করা হয়নি এমন অনুরোধগুলিও রয়েছে৷
আপনার iOS ক্লায়েন্টের জন্য অ্যাপ চেক আনএনফোর্স করতে, iOS ক্লায়েন্টের সম্পাদনা দৃশ্যে নেভিগেট করুন এবং UNENFORCE বোতামে ক্লিক করুন এবং আপনার পছন্দ নিশ্চিত করুন৷
দ্রষ্টব্য : অ্যাপ চেক আনফোর্স করার পরে, পরিবর্তনগুলি কার্যকর হতে 15 মিনিট পর্যন্ত সময় লাগতে পারে৷
আপনার iOS ক্লায়েন্টের জন্য অ্যাপ চেক অক্ষম করুন
আপনার অ্যাপের জন্য অ্যাপ চেক অক্ষম করলে সমস্ত অ্যাপ চেক পর্যবেক্ষণ এবং প্রয়োগ বন্ধ হয়ে যাবে। পরিবর্তে অ্যাপ চেক অপ্রয়োগ করার কথা বিবেচনা করুন যাতে আপনি আপনার ক্লায়েন্টের জন্য মেট্রিক্স পর্যবেক্ষণ চালিয়ে যেতে পারেন।
আপনার iOS ক্লায়েন্টের জন্য অ্যাপ চেক অক্ষম করতে, iOS ক্লায়েন্টের সম্পাদনা দৃশ্যে নেভিগেট করুন এবং Firebase অ্যাপ চেক টগল বোতামের মাধ্যমে অপব্যবহার থেকে আপনার OAuth ক্লায়েন্টকে রক্ষা করুন বন্ধ করুন।
দ্রষ্টব্য : অ্যাপ চেক অক্ষম করার পরে, পরিবর্তনগুলি কার্যকর হতে 15 মিনিট পর্যন্ত সময় লাগতে পারে৷
সময়-ভিত্তিক অ্যাক্সেস
সময়-ভিত্তিক অ্যাক্সেস একজন ব্যবহারকারীকে একটি অ্যাকশন সম্পূর্ণ করার জন্য সীমিত সময়ের জন্য আপনার অ্যাপকে তাদের ডেটাতে অ্যাক্সেস দেওয়ার অনুমতি দেয়। সম্মতি প্রবাহের সময় নির্বাচিত Google পণ্যগুলিতে সময়-ভিত্তিক অ্যাক্সেস উপলব্ধ, ব্যবহারকারীদের সীমিত সময়ের জন্য অ্যাক্সেস দেওয়ার বিকল্প দেয়। একটি উদাহরণ হল ডেটা পোর্টেবিলিটি API যা ডেটার এককালীন স্থানান্তর সক্ষম করে।
যখন একজন ব্যবহারকারী আপনার আবেদনের সময়-ভিত্তিক অ্যাক্সেস মঞ্জুর করে, তখন নির্দিষ্ট সময়ের পরে রিফ্রেশ টোকেনের মেয়াদ শেষ হয়ে যাবে। উল্লেখ্য যে রিফ্রেশ টোকেনগুলি নির্দিষ্ট পরিস্থিতিতে আগে অবৈধ হয়ে যেতে পারে; বিস্তারিত জানার জন্য এই ক্ষেত্রে দেখুন. অথরাইজেশন কোড এক্সচেঞ্জ রেসপন্সে refresh_token_expires_in
ফিল্ডটি এই ধরনের ক্ষেত্রে রিফ্রেশ টোকেনের মেয়াদ শেষ না হওয়া পর্যন্ত অবশিষ্ট সময়ের প্রতিনিধিত্ব করে।
আরও পড়া
নেটিভ অ্যাপগুলির জন্য IETF সেরা বর্তমান অনুশীলন OAuth 2.0 এখানে নথিভুক্ত অনেকগুলি সেরা অনুশীলন স্থাপন করে৷
ক্রস-অ্যাকাউন্ট সুরক্ষা প্রয়োগ করুন
Google-এর ক্রস-অ্যাকাউন্ট সুরক্ষা পরিষেবা ব্যবহার করে ক্রস-অ্যাকাউন্ট সুরক্ষা বাস্তবায়ন করা হল আপনার ব্যবহারকারীদের অ্যাকাউন্টগুলিকে সুরক্ষিত করার জন্য একটি অতিরিক্ত পদক্ষেপ। এই পরিষেবাটি আপনাকে নিরাপত্তা ইভেন্ট বিজ্ঞপ্তিগুলিতে সদস্যতা নিতে দেয় যা ব্যবহারকারীর অ্যাকাউন্টে বড় পরিবর্তন সম্পর্কে আপনার অ্যাপ্লিকেশনে তথ্য প্রদান করে। তারপরে আপনি কীভাবে ইভেন্টগুলিতে প্রতিক্রিয়া জানাবেন তার উপর নির্ভর করে পদক্ষেপ নিতে আপনি তথ্য ব্যবহার করতে পারেন।
Google-এর ক্রস-অ্যাকাউন্ট সুরক্ষা পরিষেবা দ্বারা আপনার অ্যাপে পাঠানো ইভেন্ট প্রকারের কিছু উদাহরণ হল:
-
https://schemas.openid.net/secevent/risc/event-type/sessions-revoked
-
https://schemas.openid.net/secevent/oauth/event-type/token-revoked
-
https://schemas.openid.net/secevent/risc/event-type/account-disabled
ক্রস-অ্যাকাউন্ট সুরক্ষা কীভাবে প্রয়োগ করতে হয় এবং উপলব্ধ ইভেন্টগুলির সম্পূর্ণ তালিকার জন্য আরও তথ্যের জন্য ক্রস-অ্যাকাউন্ট সুরক্ষার সাথে ব্যবহারকারীর অ্যাকাউন্টগুলিকে সুরক্ষিত করুন দেখুন৷