প্রতিটি Cloud-to-cloud ইন্টিগ্রেশনে ব্যবহারকারীদের যাচাই করার জন্য একটি মেকানিজম অন্তর্ভুক্ত থাকতে হবে।
যাচাইকরণ আপনাকে ব্যবহারকারীর Google অ্যাকাউন্ট আপনার যাচাইকরণ সিস্টেমের ব্যবহারকারীর অ্যাকাউন্টের সাথে লিঙ্ক করার অনুমতি দেয়। আপনার ফুলফিলমেন্ট কোনও স্মার্ট হোম ইনটেন্ট পেলে, এটি আপনাকে ব্যবহারকারীদের শনাক্ত করতে দেয়। Google স্মার্ট হোমে শুধুমাত্র অথরাইজেশন কোড ফ্লো সহ OAuth কাজ করে।
এই পৃষ্ঠায় আপনার OAuth 2.0 সার্ভার কীভাবে সেট-আপ করবেন তা বর্ণনা করা হয়েছে যাতে এটি আপনার Cloud-to-cloud ইন্টিগ্রেশনের সাথে কাজ করে।
OAuth-এর মাধ্যমে Google অ্যাকাউন্ট লিঙ্ক করা
অনুমোদন কোড প্রবাহে আপনার দুটি এন্ডপয়েন্ট প্রয়োজন:
অথরাইজেশন এন্ডপয়েন্ট হলো সেই সব ব্যবহারকারী যারা আগে থেকে সাইন-ইন করেননি, তাদের কাছে সাইন-ইন UI উপস্থাপন করা। এই অথরাইজেশন এন্ডপয়েন্টটি অনুরোধ করা অ্যাক্সেসের জন্য ব্যবহারকারীদের সম্মতি নথিভুক্ত করতে একটি স্বল্পস্থায়ী অথরাইজেশন কোডও তৈরি করে।
টোকেন বিনিময় এন্ডপয়েন্ট, যা দুই ধরনের বিনিময়ের জন্য দায়ী:
- একটি অনুমোদন কোডের বিনিময়ে একটি দীর্ঘস্থায়ী রিফ্রেশ টোকেন এবং একটি স্বল্পস্থায়ী অ্যাক্সেস টোকেন প্রদান করা হয়। ব্যবহারকারী যখন অ্যাকাউন্ট লিঙ্ক করার প্রক্রিয়াটি সম্পন্ন করেন, তখন এই বিনিময়টি ঘটে।
- একটি দীর্ঘস্থায়ী রিফ্রেশ টোকেনের বিনিময়ে একটি স্বল্পস্থায়ী অ্যাক্সেস টোকেন প্রদান করা হয়। এই বিনিময়টি ঘটে যখন গুগলের একটি নতুন অ্যাক্সেস টোকেনের প্রয়োজন হয়, কারণ তার আগেরটির মেয়াদ শেষ হয়ে গেছে।
নকশা নির্দেশিকা
এই বিভাগে OAuth লিঙ্কিং ফ্লো-এর জন্য আপনার হোস্ট করা ইউজার স্ক্রিনের ডিজাইন সংক্রান্ত প্রয়োজনীয়তা এবং সুপারিশসমূহ বর্ণনা করা হয়েছে। গুগলের অ্যাপ থেকে কল করার পর, আপনার প্ল্যাটফর্ম ব্যবহারকারীকে একটি ‘গুগলে সাইন ইন করুন’ পেজ এবং অ্যাকাউন্ট লিঙ্ক করার সম্মতি স্ক্রিন প্রদর্শন করে। অ্যাকাউন্ট লিঙ্ক করার জন্য সম্মতি দেওয়ার পর ব্যবহারকারীকে গুগলের অ্যাপে ফিরিয়ে নিয়ে যাওয়া হয়।

প্রয়োজনীয়তা
- আপনাকে অবশ্যই জানাতে হবে যে ব্যবহারকারীর অ্যাকাউন্টটি গুগলের সাথে লিঙ্ক করা হবে, গুগল হোম বা গুগল অ্যাসিস্ট্যান্টের মতো কোনো নির্দিষ্ট গুগল পণ্যের সাথে নয় ।
- আপনার অবশ্যই একটি গুগল অনুমোদন বিবৃতি থাকতে হবে, যেমন: "সাইন ইন করার মাধ্যমে, আপনি গুগলকে আপনার ডিভাইসগুলো নিয়ন্ত্রণ করার অনুমতি দিচ্ছেন।" গুগল হোম ডেভেলপার পলিসির গুগল ডিভাইস কন্ট্রোল অথরাইজেশন বিভাগটি দেখুন।
- আপনাকে অবশ্যই ওয়েব ওঅথ লিঙ্কিং পেজটি খুলতে হবে এবং নিশ্চিত করতে হবে যে ব্যবহারকারীদের তাদের গুগল অ্যাকাউন্টে সাইন ইন করার জন্য একটি সুস্পষ্ট পদ্ধতি রয়েছে, যেমন ইউজারনেম এবং পাসওয়ার্ডের জন্য ফিল্ড। গুগল সাইন-ইন (জিএসআই) পদ্ধতি ব্যবহার করবেন না, যা ব্যবহারকারীদের ওয়েব ওঅথ লিঙ্কিং পেজে না নিয়েই লিঙ্ক করার সুযোগ দেয়। এটি গুগলের নীতির লঙ্ঘন।
- ব্যবহারকারী কোন ইন্টিগ্রেশনের সাথে লিঙ্ক করছেন তা নির্দেশ করার জন্য আপনাকে OAuth লিঙ্কিং পৃষ্ঠায় নিম্নলিখিত আইটেমগুলির মধ্যে অন্তত একটি অবশ্যই অন্তর্ভুক্ত করতে হবে:
- কোম্পানির লোগো
- কোম্পানির নাম
- ইন্টিগ্রেশন নাম
- অ্যাপ আইকন
সুপারিশসমূহ
আমরা আপনাকে নিম্নলিখিত কাজগুলো করার পরামর্শ দিচ্ছি:
গুগলের গোপনীয়তা নীতি প্রদর্শন করুন। সম্মতি স্ক্রিনে গুগলের গোপনীয়তা নীতির একটি লিঙ্ক অন্তর্ভুক্ত করুন।
শেয়ার করার জন্য ডেটা। ব্যবহারকারীকে স্পষ্ট এবং সংক্ষিপ্ত ভাষায় জানান যে, গুগলের তার কোন ডেটা প্রয়োজন এবং কেন, এবং গুগল আপনার সাথে কোন ব্যবহার বা ইন্টারঅ্যাকশন ডেটা শেয়ার করতে পারে।
সুস্পষ্ট কল-টু-অ্যাকশন। আপনার সম্মতি স্ক্রিনে একটি সুস্পষ্ট কল-টু-অ্যাকশন উল্লেখ করুন, যেমন “সম্মত হন এবং লিঙ্ক করুন।” এর কারণ হলো, ব্যবহারকারীদের বুঝতে হবে যে তাদের অ্যাকাউন্ট লিঙ্ক করার জন্য গুগলের সাথে কোন ডেটা শেয়ার করতে হবে।
বাতিল করার সুবিধা। ব্যবহারকারীরা যদি লিঙ্ক করতে না চান, তবে তাদের ফিরে যাওয়ার বা বাতিল করার একটি উপায় রাখুন।
সুস্পষ্ট সাইন-ইন প্রক্রিয়া। নিশ্চিত করুন যে ব্যবহারকারীদের তাদের গুগল অ্যাকাউন্টে সাইন ইন করার জন্য একটি সুস্পষ্ট পদ্ধতি রয়েছে, যেমন ইউজারনেম ও পাসওয়ার্ডের জন্য ফিল্ড অথবা ‘গুগল দিয়ে সাইন ইন’ করার সুবিধা ।
সংযোগ বিচ্ছিন্ন করার সুবিধা দিন। ব্যবহারকারীদের সংযোগ বিচ্ছিন্ন করার জন্য একটি ব্যবস্থা রাখুন, যেমন আপনার প্ল্যাটফর্মে তাদের অ্যাকাউন্ট সেটিংসের একটি ইউআরএল। বিকল্পভাবে, আপনি গুগল অ্যাকাউন্টের একটি লিঙ্ক অন্তর্ভুক্ত করতে পারেন, যেখানে ব্যবহারকারীরা তাদের লিঙ্ক করা অ্যাকাউন্টটি পরিচালনা করতে পারবেন। যদি কোনো ব্যবহারকারী আপনার ইন্টিগ্রেশন থেকে সংযোগ বিচ্ছিন্ন করেন, তবে এই পরিবর্তন সম্পর্কে গুগলকে জানাতে
agentUsers.deleteব্যবহার করুন।ব্যবহারকারীর অ্যাকাউন্ট পরিবর্তন করার সুবিধা। ব্যবহারকারীদের অ্যাকাউন্ট বদলানোর জন্য একটি পদ্ধতির পরামর্শ দিন। যাদের একাধিক অ্যাকাউন্ট থাকার প্রবণতা রয়েছে, তাদের জন্য এটি বিশেষভাবে উপকারী।
- যদি কোনো ব্যবহারকারীকে অ্যাকাউন্ট পরিবর্তন করার জন্য সম্মতি স্ক্রিনটি বন্ধ করতে হয়, তাহলে Google-কে একটি পুনরুদ্ধারযোগ্য ত্রুটি বার্তা পাঠান, যাতে ব্যবহারকারী OAuth লিঙ্কিং ব্যবহার করে কাঙ্ক্ষিত অ্যাকাউন্টে সাইন ইন করতে পারেন।
আপনার লোগো অন্তর্ভুক্ত করুন। সম্মতি স্ক্রিনে আপনার কোম্পানির লোগো প্রদর্শন করুন। আপনার লোগো স্থাপনের জন্য নিজস্ব স্টাইল নির্দেশিকা ব্যবহার করুন। আপনি যদি গুগলের লোগোও প্রদর্শন করতে চান, তবে ‘লোগো এবং ট্রেডমার্ক’ অংশটি দেখুন।

অথরাইজেশন কোডের ফ্লো
অথরাইজেশন কোড ফ্লোর OAuth 2.0 সার্ভার ইমপ্লিমেন্টেশনে দুটি এন্ডপয়েন্ট থাকে, যা আপনার পরিষেবা HTTPS-এর মাধ্যমে উপলভ্য করে। প্রথম এন্ডপয়েন্টটি হল অনুমোদনের এন্ডপয়েন্ট, যা ডেটা অ্যাক্সেসের জন্য ব্যবহারকারীদের কাছ থেকে সম্মতি খোঁজা বা পাওয়ার জন্য দায়ী। যেসব ব্যবহারকারী এখনও সাইন-ইন করেননি, অথরাইজেশন এন্ডপয়েন্ট তাদের একটি সাইন-ইন UI দেখায় এবং অনুরোধ করা অ্যাক্সেসের জন্য সম্মতি রেকর্ড করে। দ্বিতীয় এন্ডপয়েন্ট হল টোকেন এক্সচেঞ্জ এন্ডপয়েন্ট, যা টোকেন নামে পরিচিত এনক্রিপ্ট করা স্ট্রিং পেতে ব্যবহার করা হয়, যা ব্যবহারকারীকে আপনার পরিষেবা অ্যাক্সেস করার অনুমতি দেয়।
Google-এর কোনও অ্যাপ্লিকেশনকে আপনার পরিষেবার কোনও API কল করতে হলে, Google এইসব এন্ডপয়েন্ট একসাথে ব্যবহার করে আপনার ব্যবহারকারীদের থেকে তাদের হয়ে এইসব API কল করার অনুমতি নেয়।
Google-এর মাধ্যমে শুরু করা OAuth 2.0 অথরাইজেশন কোড ফ্লো সেশনে নিম্নলিখিত ফ্লো থাকে:
- Google ব্যবহারকারীর ব্রাউজারে আপনার অনুমোদনের এন্ডপয়েন্ট খোলে। কোনও অ্যাকশনের জন্য শুধুমাত্র ভয়েস-চালিত ডিভাইসে ফ্লো শুরু হলে, Google সেটি ফোনে ট্রান্সফার করে দেয়।
- ব্যবহারকারী সাইন-ইন করেন, যদি আগে থেকে সাইন-ইন করা না থাকে এবং আপনার API-এর মাধ্যমে তার ডেটা অ্যাক্সেস করার জন্য Google-কে অনুমতি দেন, যদি তিনি আগে থেকে অনুমতি না দিয়ে থাকেন।
- আপনার পরিষেবা একটি অনুমোদন কোড তৈরি করে এবং এটি Google-এ ফেরত পাঠায়। এটি করতে, অনুরোধের সাথে অ্যাটাচ করা অথরাইজেশন কোড সহ ব্যবহারকারীর ব্রাউজারকে Google-এ রিডাইরেক্ট করুন।
- Google আপনার টোকেন এক্সচেঞ্জ এন্ডপয়েন্টে যাচাইকরণ কোড পাঠায়, যা কোডের সত্যতা যাচাই করে এবং একটি অ্যাক্সেস টোকেন ও একটি রিফ্রেশ টোকেন ফেরত পাঠায়। অ্যাক্সেস টোকেন হল একটি স্বল্পমেয়াদী টোকেন যা আপনার পরিষেবা API অ্যাক্সেস করার জন্য ক্রেডেনশিয়াল হিসেবে গ্রহণ করে। রিফ্রেশ টোকেন হল দীর্ঘমেয়াদী টোকেন যা Google স্টোর করতে পারে এবং মেয়াদ শেষ হয়ে গেলে নতুন অ্যাক্সেস টোকেন পাওয়ার জন্য ব্যবহার করতে পারে।
- ব্যবহারকারী অ্যাকাউন্ট লিঙ্ক করার ফ্লো সম্পূর্ণ করার পরে, Google থেকে পাঠানো প্রতিটি পরবর্তী অনুরোধে একটি অ্যাক্সেস টোকেন থাকে।
অনুমোদনের অনুরোধ ম্যানেজ করা
OAuth 2.0 অথরাইজেশন কোড ফ্লো ব্যবহার করে অ্যাকাউন্ট লিঙ্ক করার প্রয়োজন হলে, Google ব্যবহারকারীকে আপনার অথরাইজেশন এন্ডপয়েন্টে একটি অনুরোধ পাঠায় যাতে নিম্নলিখিত প্যারামিটার অন্তর্ভুক্ত থাকে:
| অনুমোদনের এন্ডপয়েন্ট প্যারামিটার | |
|---|---|
client_id |
Google-কে আপনার অ্যাসাইন করা ক্লায়েন্ট আইডি। |
redirect_uri |
এই অনুরোধের উত্তর আপনি যে URL-এ পাঠাবেন। |
state |
একটি বুককিপিং ভ্যালু যা রিডাইরেক্ট URI-তে অপরিবর্তিত অবস্থায় Google-এ ফেরত পাঠানো হয়। |
scope |
ঐচ্ছিক: স্পেস-ডিলিমিটেড সেট অফ স্কোপ স্ট্রিং যা Google-এর অনুমোদনের জন্য অনুরোধ করা ডেটা নির্দিষ্ট করে। |
response_type |
উত্তরে যে ধরনের ভ্যালু ফেরত দিতে হবে। OAuth 2.0
অথরাইজেশন কোডের ফ্লোয়ের জন্য, রেসপন্সের ধরন সবসময় code হয়।
|
যেমন, আপনার অনুমোদনের এন্ডপয়েন্ট যদি
https://myservice.example.com/auth-এ উপলভ্য থাকে, তাহলে অনুরোধটি নিম্নলিখিতের মতো দেখতে হতে পারে:
GET https://myservice.example.com/auth?client_id=GOOGLE_CLIENT_ID&redirect_uri=REDIRECT_URI&state=STATE_STRING&scope=REQUESTED_SCOPES&response_type=code
সাইন-ইন অনুরোধ ম্যানেজ করার জন্য আপনার অনুমোদনের এন্ডপয়েন্টের জন্য, নিম্নলিখিত ধাপগুলি অনুসরণ করুন:
client_id-এর সাথে Google-এ আপনার অ্যাসাইন করা ক্লায়েন্ট আইডি এবংredirect_uri-এর সাথে আপনার পরিষেবার জন্য Google-এর দেওয়া রিডাইরেক্ট URL মিলছে কিনা তা যাচাই করুন। অনিচ্ছাকৃত বা ভুলভাবে কনফিগার করা ক্লায়েন্ট অ্যাপে অ্যাক্সেস প্রদান করা আটকানোর জন্য এই চেকগুলি গুরুত্বপূর্ণ। আপনি একাধিক OAuth 2.0 ফ্লোতে সমর্থন করলে,response_typeযেcodeসেটিও কনফার্ম করুন।- ব্যবহারকারী আপনার পরিষেবায় সাইন-ইন করেছেন কিনা তা চেক করুন। ব্যবহারকারী সাইন-ইন না করে থাকলে, আপনার পরিষেবার সাইন-ইন বা সাইন-আপ ফ্লো সম্পূর্ণ করুন।
- Google-এর জন্য একটি অনুমোদন কোড তৈরি করুন যাতে আপনার API অ্যাক্সেস করতে পারে। অথরাইজেশন কোড যেকোনও স্ট্রিং ভ্যালু হতে পারে, তবে এটি অবশ্যই অনন্যভাবে ব্যবহারকারী, ক্লায়েন্ট যার জন্য টোকেন এবং কোডের মেয়াদ শেষ হওয়ার সময়কে উপস্থাপন করতে হবে এবং এটি অনুমানযোগ্য হওয়া চলবে না। আপনি সাধারণত এমন অথরাইজেশন কোড ইস্যু করেন যেগুলির মেয়াদ প্রায় ১০ মিনিট পরে শেষ হয়ে যায়।
redirect_uriপ্যারামিটার দ্বারা নির্দিষ্ট করা URL-এ নিম্নলিখিত ফর্ম আছে কিনা তা কনফার্ম করুন:https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID https://oauth-redirect-sandbox.googleusercontent.com/r/YOUR_PROJECT_ID
redirect_uriপ্যারামিটার দ্বারা নির্দিষ্ট করা URL-এ ব্যবহারকারীর ব্রাউজার রিডাইরেক্ট করুন। আপনি এইমাত্র যে অথরাইজেশন কোড তৈরি করেছেন এবং আসল, অপরিবর্তিত স্টেট ভ্যালু অন্তর্ভুক্ত করুন, যখন আপনিcodeএবংstateপ্যারামিটার যোগ করে রিডাইরেক্ট করবেন। নিচে ফলাফল হিসেবে পাওয়া URL-এর উদাহরণ দেওয়া হল:https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID?code=AUTHORIZATION_CODE&state=STATE_STRING
টোকেন এক্সচেঞ্জের অনুরোধ ম্যানেজ করুন
আপনার পরিষেবার টোকেন এক্সচেঞ্জ এন্ডপয়েন্ট দুই ধরনের টোকেন এক্সচেঞ্জের জন্য দায়ী:
- অ্যাক্সেস টোকেন ও রিফ্রেশ টোকেনের জন্য যাচাইকরণ কোড এক্সচেঞ্জ করুন
- অ্যাক্সেস টোকেনের জন্য রিফ্রেশ টোকেন এক্সচেঞ্জ করুন
টোকেন এক্সচেঞ্জের অনুরোধে নিম্নলিখিত প্যারামিটার অন্তর্ভুক্ত থাকে:
| টোকেন এক্সচেঞ্জ এন্ডপয়েন্ট প্যারামিটার | |
|---|---|
client_id |
যে স্ট্রিং অনুরোধের উৎস Google হিসেবে শনাক্ত করে। এই স্ট্রিংটি আপনার সিস্টেমে Google-এর অনন্য শনাক্তকারী হিসেবে রেজিস্টার করা থাকতে হবে। |
client_secret |
আপনার পরিষেবার জন্য Google-এ রেজিস্টার করা একটি গোপন স্ট্রিং। |
grant_type |
যে ধরনের টোকেন এক্সচেঞ্জ করা হচ্ছে। এটি হয়
authorization_code অথবা refresh_token। |
code |
grant_type=authorization_code হলে, এই প্যারামিটারটি হল
সেই কোড যা Google আপনার সাইন-ইন বা টোকেন এক্সচেঞ্জ
এন্ডপয়েন্ট থেকে পেয়েছে। |
redirect_uri |
grant_type=authorization_code হলে, এই প্যারামিটারটি হল
প্রাথমিক অনুমোদনের অনুরোধে ব্যবহৃত URL। |
refresh_token |
grant_type=refresh_token হলে, এই প্যারামিটারটি হল
রিফ্রেশ টোকেন যা Google আপনার টোকেন এক্সচেঞ্জ এন্ডপয়েন্ট থেকে পেয়েছে। |
Google কীভাবে আপনার সার্ভারে ক্রেডেনশিয়াল পাঠায় তা কনফিগার করুন
এটি কীভাবে প্রয়োগ করা হয়েছে তার উপর নির্ভর করে, আপনার অথরাইজেশন সার্ভার অনুরোধের বডিতে বা অনুরোধের হেডারে ক্লায়েন্টের ক্রেডেনশিয়াল পাওয়ার আশা করে।
ডিফল্ট হিসেবে, Google অনুরোধের বডিতে ক্রেডেনশিয়াল পাঠায়। আপনার অনুমোদন সার্ভারের রিকোয়েস্ট হেডারে ক্লায়েন্ট ক্রেডেনশিয়াল প্রয়োজন হলে, আপনাকে সেই অনুযায়ী Cloud-to-cloud ইন্টিগ্রেশন কনফিগার করতে হবে:
প্রোজেক্টের তালিকা থেকে, আপনি যে প্রোজেক্ট নিয়ে কাজ করতে চান সেটির পাশে খুলুন বিকল্পে ক্লিক করুন।
ক্লাউড-টু-ক্লাউড বিকল্পের মধ্যে, ডেভেলপ করুন বিকল্প বেছে নিন।
আপনার ইন্টিগ্রেশনের পাশে খুলুন বিকল্পে ক্লিক করুন।
স্ক্রল করে অনুমতি (ঐচ্ছিক) বিভাগে যান এবং HTTP বেসিক অথেন্টিকেশন হেডারের মাধ্যমে Google-কে ক্লায়েন্ট আইডি ও সিক্রেট ট্রান্সমিট করতে দিন চেকবক্স বেছে নিন।
আপনার করা পরিবর্তন সেভ করতে, সেভ করুন বিকল্পে ক্লিক করুন।
অ্যাক্সেস টোকেন ও রিফ্রেশ টোকেনের জন্য যাচাইকরণ কোড এক্সচেঞ্জ করুন
ব্যবহারকারী সাইন-ইন করার পরে এবং আপনার অনুমোদনের এন্ডপয়েন্ট Google-কে স্বল্পমেয়াদী অনুমোদন কোড ফেরত দেওয়ার পরে, Google আপনার টোকেন এক্সচেঞ্জ এন্ডপয়েন্টে অনুরোধ পাঠায় যাতে অ্যাক্সেস টোকেন ও রিফ্রেশ টোকেনের জন্য অনুমোদন কোড এক্সচেঞ্জ করা যায়।
এইসব অনুরোধের জন্য, grant_type-এর ভ্যালু হল authorization_code এবং
code-এর ভ্যালু হল আপনি আগে Google-কে যে অথরাইজেশন কোড দিয়েছিলেন
তার ভ্যালু। অ্যাক্সেস টোকেন ও রিফ্রেশ টোকেনের জন্য অথরাইজেশন কোড এক্সচেঞ্জ করার অনুরোধের উদাহরণ নিচে দেওয়া হল:
POST /token HTTP/1.1 Host: oauth2.example.com Content-Type: application/x-www-form-urlencoded client_id=GOOGLE_CLIENT_ID&client_secret=GOOGLE_CLIENT_SECRET&grant_type=authorization_code&code=AUTHORIZATION_CODE&redirect_uri=REDIRECT_URI
অ্যাক্সেস টোকেন ও রিফ্রেশ টোকেনের জন্য অনুমোদনের কোড এক্সচেঞ্জ করতে, আপনার
টোকেন এক্সচেঞ্জ এন্ডপয়েন্ট নিম্নলিখিত ধাপগুলি অনুসরণ করে POST অনুরোধের
উত্তর দেয়:
- যাচাই করুন যে
client_idঅনুরোধের উৎসকে অনুমোদিত উৎস হিসেবে শনাক্ত করে এবংclient_secretপ্রত্যাশিত মানের সাথে মেলে। - যাচাই করুন যে অনুমোদনের কোডটি সঠিক এবং মেয়াদ শেষ হয়ে যায়নি এবং অনুরোধে নির্দিষ্ট করা ক্লায়েন্ট আইডি অনুমোদনের কোডের সাথে যুক্ত ক্লায়েন্ট আইডির সাথে মেলে।
redirect_uriপ্যারামিটার দ্বারা নির্দিষ্ট করা URLটি প্রাথমিক অনুমোদনের অনুরোধে ব্যবহৃত মানের সাথে অভিন্ন কিনা তা কনফার্ম করুন।- আপনি যদি উপরের সবকটি মানদণ্ড যাচাই করতে না পারেন, তাহলে বডি হিসেবে
{"error": "invalid_grant"}সহ HTTP 400 Bad Request সংক্রান্ত সমস্যা রিটার্ন করুন। - অন্যথায়, রিফ্রেশ টোকেন ও অ্যাক্সেস টোকেন জেনারেট করতে অথরাইজেশন কোড থেকে ব্যবহারকারীর আইডি ব্যবহার করুন। এই টোকেন যেকোনও স্ট্রিং ভ্যালু হতে পারে, তবে সেগুলি অবশ্যই ব্যবহারকারী এবং ক্লায়েন্টকে অনন্যভাবে উপস্থাপন করতে হবে যার জন্য টোকেনটি তৈরি করা হয়েছে এবং সেগুলি অনুমানযোগ্য হওয়া চলবে না। অ্যাক্সেস টোকেনের জন্য, টোকেনের মেয়াদ শেষ হওয়ার সময়ও রেকর্ড করুন, যা সাধারণত টোকেন ইস্যু করার এক ঘণ্টা পরে হয়। রিফ্রেশ টোকেনের মেয়াদ শেষ হয় না।
- HTTPS রেসপন্সের বডিতে নিম্নলিখিত JSON অবজেক্ট রিটার্ন করুন:
{ "token_type": "Bearer", "access_token": "ACCESS_TOKEN", "refresh_token": "REFRESH_TOKEN", "expires_in": SECONDS_TO_EXPIRATION }
Google ব্যবহারকারীর জন্য অ্যাক্সেস টোকেন ও রিফ্রেশ টোকেন স্টোর করে এবং অ্যাক্সেস টোকেনের মেয়াদ শেষ হওয়ার তারিখ রেকর্ড করে। অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলে, Google আপনার টোকেন এক্সচেঞ্জ এন্ডপয়েন্ট থেকে নতুন অ্যাক্সেস টোকেন পেতে রিফ্রেশ টোকেন ব্যবহার করে।
অ্যাক্সেস টোকেনের জন্য রিফ্রেশ টোকেন এক্সচেঞ্জ করুন
অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলে, Google আপনার টোকেন এক্সচেঞ্জ এন্ডপয়েন্টে একটি অনুরোধ পাঠায় যাতে রিফ্রেশ টোকেনের পরিবর্তে নতুন অ্যাক্সেস টোকেন পাওয়া যায়।
এইসব অনুরোধের জন্য, grant_type-এর ভ্যালু হল refresh_token এবং refresh_token-এর ভ্যালু হল
আপনি আগে Google-কে যে রিফ্রেশ টোকেন দিয়েছেন সেটির ভ্যালু। অ্যাক্সেস টোকেনের জন্য রিফ্রেশ টোকেন এক্সচেঞ্জ করার অনুরোধের উদাহরণ নিচে দেওয়া হল:
POST /token HTTP/1.1 Host: oauth2.example.com Content-Type: application/x-www-form-urlencoded client_id=GOOGLE_CLIENT_ID&client_secret=GOOGLE_CLIENT_SECRET&grant_type=refresh_token&refresh_token=REFRESH_TOKEN
অ্যাক্সেস টোকেনের জন্য রিফ্রেশ টোকেন এক্সচেঞ্জ করতে, আপনার টোকেন এক্সচেঞ্জ এন্ডপয়েন্ট
নিম্নলিখিত ধাপগুলি সম্পূর্ণ করে POST অনুরোধের উত্তর দেয়:
- যাচাই করুন যে
client_idঅনুরোধের উৎস Google হিসেবে শনাক্ত করে এবংclient_secretপ্রত্যাশিত মানের সাথে মেলে। - রিফ্রেশ টোকেনটি বৈধ কিনা এবং অনুরোধে উল্লেখ করা ক্লায়েন্ট আইডিটি রিফ্রেশ টোকেনের সাথে যুক্ত ক্লায়েন্ট আইডির সাথে মিলছে কিনা তা যাচাই করুন।
- আপনি যদি উপরের সবকটি মানদণ্ড যাচাই করতে না পারেন, তাহলে বডি হিসেবে
{"error": "invalid_grant"}সহ HTTP 400 খারাপ অনুরোধ সংক্রান্ত সমস্যা রিটার্ন করুন। - অন্যথায়, অ্যাক্সেস টোকেন তৈরি করতে রিফ্রেশ টোকেন থেকে ব্যবহারকারীর আইডি ব্যবহার করুন। এই টোকেনগুলি যেকোনও স্ট্রিং ভ্যালু হতে পারে, তবে সেগুলি অবশ্যই ব্যবহারকারী এবং ক্লায়েন্টকে অনন্যভাবে উপস্থাপন করতে হবে যার জন্য টোকেনটি এবং সেগুলি অবশ্যই অনুমানযোগ্য হবে না। অ্যাক্সেস টোকেনের জন্য, টোকেনের মেয়াদ শেষ হওয়ার সময়ও রেকর্ড করুন, সাধারণত টোকেন ইস্যু করার এক ঘণ্টা পরে।
- HTTPS রেসপন্সের বডিতে নিম্নলিখিত JSON অবজেক্ট ফিরিয়ে দিন:
{ "token_type": "Bearer", "access_token": "ACCESS_TOKEN", "expires_in": SECONDS_TO_EXPIRATION }
ব্যবহারকারীর তথ্যের অনুরোধগুলি পরিচালনা করুন
ইউজারইনফো এন্ডপয়েন্ট হল একটি OAuth 2.0 সুরক্ষিত রিসোর্স যা লিঙ্ক করা ব্যবহারকারীর বিষয়ে দাবি ফেরত দেয়। ইউজার ইনফো এন্ডপয়েন্ট বাস্তবায়ন এবং হোস্ট করা ঐচ্ছিক, নিম্নলিখিত ব্যবহারের ক্ষেত্রে ছাড়া:
- Google One ট্যাপের মাধ্যমে লিঙ্ক করা অ্যাকাউন্টে সাইন-ইন করুন ।
- AndroidTV-তে ঘর্ষণহীন সাবস্ক্রিপশন ।
আপনার টোকেন এন্ডপয়েন্ট থেকে অ্যাক্সেস টোকেন সফলভাবে পুনরুদ্ধার করার পরে, Google লিঙ্ক করা ব্যবহারকারীর সম্পর্কে প্রাথমিক প্রোফাইল তথ্য পুনরুদ্ধার করার জন্য আপনার ব্যবহারকারীর তথ্য এন্ডপয়েন্টে একটি অনুরোধ পাঠায়।
| userinfo এন্ডপয়েন্ট রিকোয়েস্ট হেডার | |
|---|---|
Authorization header | টাইপ বিয়ারারের অ্যাক্সেস টোকেন। |
উদাহরণস্বরূপ, যদি আপনার ব্যবহারকারীর তথ্যের এন্ডপয়েন্ট https://myservice.example.com/userinfo এ উপলব্ধ থাকে, তাহলে একটি অনুরোধ নিম্নলিখিতটির মতো দেখতে পারে:
GET /userinfo HTTP/1.1 Host: myservice.example.com Authorization: Bearer ACCESS_TOKEN
অনুরোধগুলি পরিচালনা করার জন্য আপনার ব্যবহারকারীর তথ্যের শেষ পয়েন্টের জন্য, নিম্নলিখিত পদক্ষেপগুলি করুন:
- অনুমোদন শিরোনাম থেকে অ্যাক্সেস টোকেন বের করুন এবং অ্যাক্সেস টোকেনের সাথে যুক্ত ব্যবহারকারীর জন্য তথ্য ফেরত দিন।
- অ্যাক্সেস টোকেনটি অবৈধ হলে,
WWW-Authenticateপ্রতিক্রিয়া শিরোনাম ব্যবহার করে একটি HTTP 401 অননুমোদিত ত্রুটি ফেরত দিন। নীচে একটি ব্যবহারকারীর তথ্য ত্রুটি প্রতিক্রিয়ার একটি উদাহরণ: লিঙ্কিং প্রক্রিয়া চলাকালীন যদি একটি 401 অননুমোদিত, বা অন্য কোনো অসফল ত্রুটির প্রতিক্রিয়া ফেরত দেওয়া হয়, তবে ত্রুটিটি পুনরুদ্ধারযোগ্য হবে না, পুনরুদ্ধার করা টোকেন বাতিল করা হবে এবং ব্যবহারকারীকে আবার লিঙ্কিং প্রক্রিয়া শুরু করতে হবে।HTTP/1.1 401 Unauthorized WWW-Authenticate: error="invalid_token", error_description="The Access Token expired"
অ্যাক্সেস টোকেনটি বৈধ হলে, HTTPS প্রতিক্রিয়ার বডিতে নিম্নলিখিত JSON অবজেক্টের সাথে HTTP 200 প্রতিক্রিয়া ফেরত দিন:
যদি আপনার ব্যবহারকারীর তথ্য এন্ডপয়েন্ট একটি HTTP 200 সাফল্যের প্রতিক্রিয়া প্রদান করে, তবে পুনরুদ্ধার করা টোকেন এবং দাবিগুলি ব্যবহারকারীর Google অ্যাকাউন্টের বিরুদ্ধে নিবন্ধিত হয়।{ "sub": "USER_UUID", "email": "EMAIL_ADDRESS", "given_name": "FIRST_NAME", "family_name": "LAST_NAME", "name": "FULL_NAME", "picture": "PROFILE_PICTURE", }ব্যবহারকারীর তথ্য শেষ পয়েন্ট প্রতিক্রিয়া subএকটি অনন্য আইডি যা আপনার সিস্টেমে ব্যবহারকারীকে শনাক্ত করে। emailব্যবহারকারীর ইমেল ঠিকানা। given_nameঐচ্ছিক: ব্যবহারকারীর প্রথম নাম। family_nameঐচ্ছিক: ব্যবহারকারীর শেষ নাম। nameঐচ্ছিক: ব্যবহারকারীর পুরো নাম। pictureঐচ্ছিক: ব্যবহারকারীর প্রোফাইল ছবি।