OAuth অ্যাকাউন্ট লিঙ্কিং টাইপ দুটি শিল্প-মান OAuth 2.0 প্রবাহ সমর্থন করে: অন্তর্নিহিত এবং অনুমোদন কোড প্রবাহ। অন্তর্নিহিত কোড প্রবাহে, Google ব্যবহারকারীর ব্রাউজারে আপনার অনুমোদনের শেষ পয়েন্ট খোলে। সফল সাইন-ইন করার পরে, আপনি Google-এ একটি দীর্ঘস্থায়ী অ্যাক্সেস টোকেন ফেরত দেন। এই অ্যাক্সেস টোকেনটি তখন অ্যাসিস্ট্যান্ট থেকে আপনার অ্যাকশনে পাঠানো প্রতিটি অনুরোধে অন্তর্ভুক্ত করা হয়।
নিম্নলিখিতগুলি প্রযোজ্য হলে OAuth হল প্রস্তাবিত অ্যাকাউন্ট লিঙ্ক করার সমাধান:
- আপনার কাছে একটি OAuth 2.0 সার্ভারের একটি বিদ্যমান বাস্তবায়ন রয়েছে এবং আপনি একটি আইডি টোকেন থেকে স্বয়ংক্রিয় লিঙ্কিং এবং অ্যাকাউন্ট তৈরির জন্য Google-এর প্রোটোকলগুলির জন্য সমর্থন যোগ করতে আপনার টোকেন এক্সচেঞ্জ এন্ডপয়েন্টকে প্রসারিত করতে পারবেন না (যেমন, অনুরোধে
intent=get
এবংintent=create
প্যারামিটার যোগ করুন এই শেষ বিন্দু পর্যন্ত)।
OAuth যে আপনার জন্য সঠিক সমাধান তা যাচাই করতে, আপনার অ্যাকাউন্ট লিঙ্ক করার ধরন বেছে নিন পৃষ্ঠাটি দেখুন।
মূল শর্তাবলী
OAuth কীভাবে কাজ করে সে সম্পর্কে পড়ার আগে, নিম্নলিখিত শর্তগুলির সাথে নিজেকে পরিচিত করুন:
- অ্যাকাউন্ট সাইন-ইন সহায়ক অভিপ্রায়: একটি সহায়ক অভিপ্রায় যা আপনি সহায়ক থেকে একটি অ্যাকাউন্ট লিঙ্কিং প্রবাহের অনুরোধ করতে কল করেন। আরও তথ্যের জন্য, অ্যাকাউন্ট সাইন-ইন দেখুন।
- প্রসঙ্গ স্ট্রিং: একটি কাস্টমাইজড স্ট্রিং যা আপনি অ্যাকাউন্ট সাইন-ইন সহায়ক অভিপ্রায়ে যোগ করেন যা ব্যবহারকারীকে বলে যে কেন তাদের অ্যাকাউন্ট লিঙ্ক করার জন্য আপনার প্রয়োজন।
অনুমোদন কোড ফ্লো: এই OAuth 2.0 ফ্লো চলাকালীন, Google ব্যবহারকারীর ব্রাউজারে আপনার অনুমোদনের শেষ পয়েন্ট খোলে। সাইন-ইন সফল হলে, আপনার পরিষেবা একটি অনুমোদন কোড তৈরি করে এবং এটি Google-এ ফেরত দেয়। Google এই অনুমোদন কোডটি আপনার টোকেন এক্সচেঞ্জ এন্ডপয়েন্টে পাঠায়, যা কোডের সত্যতা যাচাই করে এবং একটি অ্যাক্সেস টোকেন ফেরত দেয় এবং টোকেন রিফ্রেশ করে।
এই প্রবাহের দুটি শেষ বিন্দু প্রয়োজন:
- অনুমোদনের শেষ পয়েন্ট: ডেটা অ্যাক্সেসের জন্য ব্যবহারকারীদের কাছ থেকে সম্মতি খোঁজার বা প্রাপ্তির জন্য দায়ী শেষ পয়েন্ট। এই শেষ বিন্দু নিম্নলিখিত কাজ করে:
- আপনার ব্যবহারকারীদের কাছে সাইন-ইন UI উপস্থাপন করে যারা ইতিমধ্যে সাইন ইন করেননি৷
- একটি স্বল্পকালীন অনুমোদন কোড আকারে অনুরোধ করা অ্যাক্সেসের জন্য সম্মতি রেকর্ড করে।
- টোকেন এক্সচেঞ্জ এন্ডপয়েন্ট: এই এন্ডপয়েন্টটি টোকেন নামক এনক্রিপ্ট করা স্ট্রিং পেতে ব্যবহৃত হয় যা অ্যাকশন ব্যবহারকারীকে আপনার পরিষেবা অ্যাক্সেস করার অনুমতি দেয়। এই শেষ বিন্দু দুটি ধরনের বিনিময়ের জন্য দায়ী:
- একটি দীর্ঘস্থায়ী রিফ্রেশ টোকেন এবং একটি স্বল্পকালীন অ্যাক্সেস টোকেনের জন্য একটি অনুমোদন কোড বিনিময় করে৷ এই বিনিময়টি ঘটে যখন ব্যবহারকারী অ্যাকাউন্ট লিঙ্কিং প্রবাহের মধ্য দিয়ে যায়।
- একটি স্বল্পকালীন অ্যাক্সেস টোকেনের জন্য দীর্ঘস্থায়ী রিফ্রেশ টোকেন বিনিময় করে। এই বিনিময়টি ঘটে যখন Google এর একটি নতুন অ্যাক্সেস টোকেনের প্রয়োজন হয় কারণ এটির মেয়াদ শেষ হয়ে গেছে৷
- অনুমোদনের শেষ পয়েন্ট: ডেটা অ্যাক্সেসের জন্য ব্যবহারকারীদের কাছ থেকে সম্মতি খোঁজার বা প্রাপ্তির জন্য দায়ী শেষ পয়েন্ট। এই শেষ বিন্দু নিম্নলিখিত কাজ করে:
অন্তর্নিহিত কোড ফ্লো: এই OAuth 2.0 ফ্লো চলাকালীন, Google ব্যবহারকারীর ব্রাউজারে আপনার অনুমোদনের শেষ পয়েন্ট খোলে। সাইন-ইন সফল হলে, আপনি Google-এ একটি দীর্ঘস্থায়ী অ্যাক্সেস টোকেন ফেরত দেবেন। এই অ্যাক্সেস টোকেনটি তখন অ্যাসিস্ট্যান্ট থেকে আপনার অ্যাকশনে পাঠানো প্রতিটি অনুরোধে অন্তর্ভুক্ত করা হয়। এই প্রবাহের জন্য শুধুমাত্র একটি অনুমোদনের শেষ বিন্দু প্রয়োজন।
অ্যাক্সেস টোকেন: একটি টোকেন যা ব্যবহারকারীর ডেটার অংশগুলি অ্যাক্সেস করার জন্য আপনার পরিষেবাকে অনুমোদন করে। অ্যাক্সেস টোকেন প্রতিটি স্বতন্ত্র ব্যবহারকারীর সাথে যুক্ত এবং অনুমানযোগ্য হওয়া উচিত।
রিফ্রেশ টোকেন: একটি টোকেন যা একটি নতুন অ্যাক্সেস টোকেনের জন্য বিনিময় করা হয় একবার একটি স্বল্পকালীন অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলে।
কিভাবে এটা কাজ করে
এই বিভাগটি OAuth অনুমোদন কোড এবং অন্তর্নিহিত প্রবাহের সাধারণ প্রবাহ বর্ণনা করে। নিম্নলিখিত বিভাগ, OAuth ফ্লোস , OAuth এর সাথে ঘটতে পারে এমন বিভিন্ন প্রবাহের বর্ণনা দেয়।
অনুমোদন কোড প্রবাহ নিম্নরূপ সংক্ষিপ্ত করা যেতে পারে:
- আপনার অ্যাকশন ব্যবহারকারীকে জিজ্ঞাসা করে যে তারা আপনার পরিষেবার সাথে তাদের অ্যাকাউন্ট লিঙ্ক করতে চায় কিনা।
- ব্যবহারকারী অ্যাকাউন্ট লিঙ্ক করতে সম্মত হওয়ার পরে, Google ব্যবহারকারীর ব্রাউজারে আপনার অনুমোদনের শেষ পয়েন্ট খোলে। যদি কোনো অ্যাকশনের জন্য শুধুমাত্র ভয়েস ডিভাইসে প্রবাহ শুরু হয়, তাহলে Google এক্সিকিউশনটি একটি ফোনে স্থানান্তর করবে।
- ব্যবহারকারী সাইন ইন করে (যদি ইতিমধ্যে সাইন ইন না করে থাকে) এবং Google-কে আপনার API দিয়ে তাদের ডেটা অ্যাক্সেস করার অনুমতি দেয় (যদি তারা ইতিমধ্যে অনুমতি না দিয়ে থাকে)।
- আপনার পরিষেবা একটি অনুমোদন কোড তৈরি করে এবং অনুরোধের সাথে সংযুক্ত অনুমোদন কোড সহ ব্যবহারকারীর ব্রাউজারটিকে Google-এ পুনঃনির্দেশ করে Google-এ ফেরত দেয়।
- Google আপনার টোকেন এক্সচেঞ্জ এন্ডপয়েন্টে অনুমোদন কোড পাঠায়, যা কোডের সত্যতা যাচাই করে এবং একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেন ফেরত দেয়। অ্যাক্সেস টোকেন হল একটি স্বল্পস্থায়ী টোকেন যা আপনার পরিষেবা API অ্যাক্সেস করার জন্য শংসাপত্র হিসাবে গ্রহণ করে। রিফ্রেশ টোকেন হল একটি দীর্ঘস্থায়ী টোকেন যা Google সংরক্ষণ করতে পারে এবং মেয়াদ শেষ হয়ে গেলে নতুন অ্যাক্সেস টোকেনগুলি অর্জন করতে ব্যবহার করতে পারে৷
- ব্যবহারকারী অ্যাকাউন্ট লিঙ্কিং ফ্লো সম্পূর্ণ করার পরে, আপনার পূরণের ওয়েবহুকে সহায়ক থেকে পাঠানো প্রতিটি পরবর্তী অনুরোধে একটি অ্যাক্সেস টোকেন থাকে।
অন্তর্নিহিত কোড প্রবাহ নিম্নরূপ সংক্ষিপ্ত করা যেতে পারে:
- আপনার অ্যাকশন ব্যবহারকারীকে জিজ্ঞাসা করে যে তারা আপনার পরিষেবার সাথে তাদের অ্যাকাউন্ট লিঙ্ক করতে চায় কিনা।
- ব্যবহারকারী অ্যাকাউন্ট লিঙ্ক করতে সম্মত হওয়ার পরে, Google ব্যবহারকারীর ব্রাউজারে আপনার অনুমোদনের শেষ পয়েন্ট খোলে।
- ব্যবহারকারী সাইন ইন করে (যদি ইতিমধ্যে সাইন ইন না করে থাকে) এবং Google-কে আপনার API দিয়ে তাদের ডেটা অ্যাক্সেস করার অনুমতি দেয় (যদি তারা ইতিমধ্যে অনুমতি না দিয়ে থাকে)।
- আপনার পরিষেবা একটি অ্যাক্সেস টোকেন তৈরি করে এবং অনুরোধের সাথে সংযুক্ত অ্যাক্সেস টোকেন সহ ব্যবহারকারীর ব্রাউজারটিকে Google-এ পুনঃনির্দেশ করে Google-এ ফেরত দেয়।
- ব্যবহারকারী অ্যাকাউন্ট লিঙ্কিং ফ্লো সম্পূর্ণ করার পরে, Google আপনার পরিষেবার API কল করে এবং প্রতিটি অনুরোধের সাথে অ্যাক্সেস টোকেন সংযুক্ত করে। আপনার পরিষেবা যাচাই করে যে অ্যাক্সেস টোকেন Google-কে API অ্যাক্সেস করার অনুমোদন দেয় এবং তারপর API কলটি সম্পূর্ণ করে।
মৌলিক অনুমোদন কোড প্রবাহ নিম্নরূপ:
- আপনার অ্যাকশন ব্যবহারকারীকে জিজ্ঞাসা করে যে তারা আপনার পরিষেবার সাথে তাদের অ্যাকাউন্ট লিঙ্ক করতে চায় কিনা।
- ব্যবহারকারী অ্যাকাউন্ট লিঙ্ক করতে সম্মত হওয়ার পরে, Google ব্যবহারকারীর ব্রাউজারে আপনার অনুমোদনের শেষ পয়েন্ট খোলে। যদি কোনো অ্যাকশনের জন্য শুধুমাত্র ভয়েস ডিভাইসে প্রবাহ শুরু হয়, তাহলে Google এক্সিকিউশনটি একটি ফোনে স্থানান্তর করবে।
- ব্যবহারকারী সাইন ইন করে (যদি ইতিমধ্যে সাইন ইন না করে থাকে) এবং Google-কে আপনার API দিয়ে তাদের ডেটা অ্যাক্সেস করার অনুমতি দেয় (যদি তারা ইতিমধ্যে অনুমতি না দিয়ে থাকে)।
- আপনার পরিষেবা একটি অনুমোদন কোড তৈরি করে এবং অনুরোধের সাথে সংযুক্ত স্বল্পকালীন অনুমোদন কোড সহ ব্যবহারকারীর ব্রাউজারটিকে Google-এ পুনঃনির্দেশ করে Google-এ ফেরত দেয়।
- Google আপনার টোকেন এক্সচেঞ্জ এন্ডপয়েন্টে অনুমোদন কোড পাঠায়, যা কোডের সত্যতা যাচাই করে এবং একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেন ফেরত দেয়। অ্যাক্সেস টোকেন হল একটি স্বল্পস্থায়ী টোকেন যা আপনার পরিষেবা API অ্যাক্সেস করার জন্য শংসাপত্র হিসাবে গ্রহণ করে। রিফ্রেশ টোকেন হল একটি দীর্ঘস্থায়ী টোকেন যা Google সংরক্ষণ করতে পারে এবং মেয়াদ শেষ হয়ে গেলে নতুন অ্যাক্সেস টোকেনগুলি অর্জন করতে ব্যবহার করতে পারে৷
- ব্যবহারকারী অ্যাকাউন্ট লিঙ্কিং ফ্লো সম্পূর্ণ করার পরে, আপনার পূরণের ওয়েবহুকে সহায়ক থেকে পাঠানো প্রতিটি পরবর্তী অনুরোধে একটি অ্যাক্সেস টোকেন থাকে।
OAuth প্রবাহিত হয়
এই বিভাগটি OAuth এর সাথে ঘটতে পারে এমন বিভিন্ন প্রবাহের উপর দিয়ে যায়।
ব্যবহারকারী আপনার অ্যাকশন আহ্বান করার পরে প্রতিটি প্রবাহে এই সাধারণ পদক্ষেপগুলি থাকে:
উপরের প্রবাহে, আপনি অ্যাকাউন্ট লিঙ্কিং ফ্লো শুরু করতে actions.intent.SIGN_IN
সহায়ক অভিপ্রায়কে কল করেন। সহকারী ব্যবহারকারীকে জিজ্ঞাসা করে যে তারা আপনার পরিষেবার সাথে তাদের অ্যাকাউন্ট লিঙ্ক করতে চায় এবং অনুরোধ করা অনুমতিগুলির সাথে একটি স্ক্রিন দেখায়। ব্যবহারকারী সম্মতি দিলে, Google ব্রাউজারে ব্যবহারকারীকে আপনার পরিষেবার অনুমোদনের শেষ পয়েন্টে পুনঃনির্দেশ করে। ব্যবহারকারী সাইন ইন করে (বা, আপনার কনফিগারেশনের উপর নির্ভর করে, একটি নতুন অ্যাকাউন্ট তৈরি করে) এবং তাদের ডেটা অ্যাক্সেস করার জন্য আপনার অ্যাকশন অনুমতি দেয়।
আপনি অন্তর্নিহিত প্রবাহ বা অনুমোদন কোড প্রবাহ প্রয়োগ করেছেন কিনা তার উপর ভিত্তি করে এই পয়েন্টের পরে প্রবাহগুলি পৃথক হয়৷ এই প্রবাহগুলি নিম্নলিখিত বিভাগে বর্ণিত হয়েছে।
প্রবাহ 1: ব্যবহারকারী অন্তর্নিহিত প্রবাহের সাথে সাইন ইন করে
ব্যবহারকারী লগ ইন করার পরে এবং তাদের শংসাপত্র যাচাই করা হলে, আপনার পরিষেবা একটি দীর্ঘস্থায়ী অ্যাক্সেস টোকেন তৈরি করে এবং এটি Google-এ ফেরত দেয়। এই মুহুর্তে, আপনার অ্যাকশনে ব্যবহারকারীর পরিচয়টি তারা যে অ্যাকাউন্ট দিয়ে সাইন ইন করেছে তার সাথে লিঙ্ক করা হয় এবং Google আপনার পরিষেবার API-এ প্রতিটি API কলের সাথে অ্যাক্সেস টোকেন সংযুক্ত থাকে।
ফ্লো 2: অনুমোদন কোড ফ্লো সহ ব্যবহারকারী সাইন ইন করে
ব্যবহারকারী লগ ইন করার পরে এবং তাদের শংসাপত্রগুলি যাচাই করার পরে, আপনার পরিষেবা একটি অনুমোদন কোড তৈরি করে এবং এটি Google-এ ফেরত দেয়৷
এই অনুমোদন কোডটি আপনার টোকেন এক্সচেঞ্জ এন্ডপয়েন্টে পাঠানো হয়, যা একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেন উভয়ই প্রদান করে। এই মুহুর্তে, আপনার অ্যাকশনে ব্যবহারকারীর পরিচয় তারা যে অ্যাকাউন্ট দিয়ে সাইন ইন করেছে তার সাথে লিঙ্ক করা হয় এবং আপনার পূরণের জন্য সহায়ক থেকে পাঠানো প্রতিটি পরবর্তী অনুরোধে একটি অ্যাক্সেস টোকেন থাকে।