OAuth এর সাথে Google অ্যাকাউন্ট লিঙ্ক করা

অ্যাকাউন্টগুলি ইন্ডাস্ট্রি স্ট্যান্ডার্ড OAuth 2.0 অন্তর্নিহিত এবং অনুমোদন কোড ফ্লো ব্যবহার করে লিঙ্ক করা হয়। আপনার পরিষেবা অবশ্যই OAuth 2.0 অনুগত অনুমোদন এবং টোকেন বিনিময় শেষ পয়েন্ট সমর্থন করবে৷

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

অনুমোদন কোড প্রবাহে, আপনার দুটি শেষ পয়েন্ট প্রয়োজন:

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

  • টোকেন এক্সচেঞ্জ এন্ডপয়েন্ট, যা দুই ধরনের এক্সচেঞ্জের জন্য দায়ী:

    1. একটি দীর্ঘস্থায়ী রিফ্রেশ টোকেন এবং একটি স্বল্পকালীন অ্যাক্সেস টোকেনের জন্য একটি অনুমোদন কোড বিনিময় করে৷ এই বিনিময়টি ঘটে যখন ব্যবহারকারী অ্যাকাউন্ট লিঙ্কিং প্রবাহের মধ্য দিয়ে যায়।
    2. একটি স্বল্পকালীন অ্যাক্সেস টোকেনের জন্য দীর্ঘস্থায়ী রিফ্রেশ টোকেন বিনিময় করে। Google এর একটি নতুন অ্যাক্সেস টোকেনের প্রয়োজন হলে এই বিনিময়টি ঘটে কারণ এটির মেয়াদ শেষ হয়ে গেছে।

একটি OAuth 2.0 ফ্লো বেছে নিন

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

ডিজাইন নির্দেশিকা

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

এই চিত্রটি একটি ব্যবহারকারীর জন্য তাদের Google অ্যাকাউন্টকে আপনার প্রমাণীকরণ সিস্টেমের সাথে লিঙ্ক করার পদক্ষেপগুলি দেখায়৷ প্রথম স্ক্রিনশটটি আপনার প্ল্যাটফর্ম থেকে ব্যবহারকারীর সূচনা লিঙ্ক দেখায়। দ্বিতীয় চিত্রটি ব্যবহারকারীর Google-এ সাইন-ইন দেখায়, যখন তৃতীয়টি আপনার অ্যাপের সাথে তাদের Google অ্যাকাউন্ট লিঙ্ক করার জন্য ব্যবহারকারীর সম্মতি এবং নিশ্চিতকরণ দেখায়। চূড়ান্ত স্ক্রিনশট Google অ্যাপে একটি সফলভাবে লিঙ্ক করা ব্যবহারকারীর অ্যাকাউন্ট দেখায়।
চিত্র 1. অ্যাকাউন্ট লিঙ্ককারী ব্যবহারকারী Google-এ সাইন ইন করুন এবং সম্মতি স্ক্রীন।

প্রয়োজনীয়তা

  1. আপনাকে অবশ্যই যোগাযোগ করতে হবে যে ব্যবহারকারীর অ্যাকাউন্টটি Google-এর সাথে লিঙ্ক করা হবে, Google Home বা Google Assistant-এর মতো নির্দিষ্ট Google পণ্যের সাথে নয়

সুপারিশ

আমরা আপনাকে নিম্নলিখিতগুলি করার পরামর্শ দিই:

  1. Google এর গোপনীয়তা নীতি প্রদর্শন করুন। সম্মতি স্ক্রিনে Google-এর গোপনীয়তা নীতির একটি লিঙ্ক অন্তর্ভুক্ত করুন।

  2. ডেটা শেয়ার করতে হবে। ব্যবহারকারীকে তাদের Google-এর কোন ডেটা প্রয়োজন এবং কেন তা জানাতে স্পষ্ট এবং সংক্ষিপ্ত ভাষা ব্যবহার করুন৷

  3. কল-টু-অ্যাকশন পরিষ্কার করুন। আপনার সম্মতি স্ক্রিনে একটি স্পষ্ট কল-টু-অ্যাকশন বলুন, যেমন "সম্মতি দিন এবং লিঙ্ক করুন।" এর কারণ হল ব্যবহারকারীদের বুঝতে হবে তাদের অ্যাকাউন্ট লিঙ্ক করার জন্য Google-এর সাথে কী ডেটা শেয়ার করতে হবে।

  4. বাতিল করার ক্ষমতা। ব্যবহারকারীরা লিঙ্ক না করা বেছে নিলে তাদের ফিরে যেতে বা বাতিল করার একটি উপায় প্রদান করুন।

  5. সাইন-ইন প্রক্রিয়া পরিষ্কার করুন। নিশ্চিত করুন যে ব্যবহারকারীদের তাদের Google অ্যাকাউন্টে সাইন ইন করার জন্য পরিষ্কার পদ্ধতি আছে, যেমন তাদের ব্যবহারকারীর নাম এবং পাসওয়ার্ডের জন্য ক্ষেত্র বা Google দিয়ে সাইন ইন করুন

  6. লিঙ্কমুক্ত করার ক্ষমতা। ব্যবহারকারীদের আনলিঙ্ক করার জন্য একটি প্রক্রিয়া অফার করুন, যেমন আপনার প্ল্যাটফর্মে তাদের অ্যাকাউন্ট সেটিংসের URL। বিকল্পভাবে, আপনি Google অ্যাকাউন্টে একটি লিঙ্ক অন্তর্ভুক্ত করতে পারেন যেখানে ব্যবহারকারীরা তাদের লিঙ্ক করা অ্যাকাউন্ট পরিচালনা করতে পারে।

  7. ব্যবহারকারীর অ্যাকাউন্ট পরিবর্তন করার ক্ষমতা। ব্যবহারকারীদের তাদের অ্যাকাউন্ট(গুলি) পরিবর্তন করার জন্য একটি পদ্ধতির পরামর্শ দিন। এটি বিশেষত উপকারী যদি ব্যবহারকারীদের একাধিক অ্যাকাউন্ট থাকে।

    • যদি কোনো ব্যবহারকারীকে অ্যাকাউন্ট পাল্টানোর জন্য সম্মতি স্ক্রীন বন্ধ করতে হয়, Google-এ একটি পুনরুদ্ধারযোগ্য ত্রুটি পাঠান যাতে ব্যবহারকারী OAuth লিঙ্কিং এবং অন্তর্নিহিত প্রবাহের মাধ্যমে পছন্দসই অ্যাকাউন্টে সাইন ইন করতে পারেন।
  8. আপনার লোগো অন্তর্ভুক্ত করুন. সম্মতি স্ক্রিনে আপনার কোম্পানির লোগো দেখান। আপনার লোগো স্থাপন করতে আপনার শৈলী নির্দেশিকা ব্যবহার করুন. আপনি যদি Google-এর লোগোও প্রদর্শন করতে চান, লোগো এবং ট্রেডমার্ক দেখুন।

创建项目

如需创建项目以使用帐号关联,请按以下步骤操作:

  1. Go to the Google API Console.
  2. প্রকল্প তৈরি করুন ক্লিক করুন
  3. একটি নাম লিখুন বা উত্পন্ন পরামর্শ গ্রহণ করুন।
  4. নিশ্চিত করুন বা কোনও অবশিষ্ট ক্ষেত্র সম্পাদনা করুন।
  5. তৈরি ক্লিক করুন

আপনার প্রকল্পের আইডি দেখতে:

  1. Go to the Google API Console.
  2. অবতরণ পৃষ্ঠায় সারণীতে আপনার প্রকল্পটি সন্ধান করুন। প্রকল্প আইডি আইডি কলামে প্রদর্শিত হবে।

Google 帐号关联流程包括一个同意屏幕,用于告知用户请求访问其数据的应用、用户要求的数据类型以及适用的条款。您需要先配置 OAuth 权限请求页面,然后才能生成 Google API 客户端 ID。

  1. 打开 Google API 控制台的 OAuth 同意屏幕页面。
  2. 如果出现提示,请选择您刚刚创建的项目。
  3. 在“OAuth 同意屏幕”页面上,填写表单,然后点击“保存”按钮。

    应用名称:请求用户同意的应用的名称。该名称应准确反映您的应用,并与用户在别处看到的应用名称保持一致。应用名称将显示在帐号关联同意屏幕上。

    应用徽标:同意屏幕上的图片,有助于用户识别您的应用。徽标会显示在帐号关联同意屏幕和帐号设置

    支持电子邮件地址:供用户就其同意情况与您联系。

    Google API 的范围:范围允许您的应用访问用户的私有 Google 数据。对于 Google 帐号关联用例,默认范围(电子邮件、个人资料、OpenID)就足够了,您无需添加任何敏感范围。最佳做法一般是在需要访问时逐步请求作用域,而不是预先请求。了解详情

    已获授权的网域:为保护您和您的用户,Google 仅允许使用 OAuth 进行身份验证的应用使用已获授权的网域。您应用的链接必须托管在已获授权的网域上。了解详情

    应用首页链接:您的应用的首页。必须托管在已获授权的网域上。

    应用隐私权政策链接:在 Google 帐号关联同意屏幕上显示。必须托管在已获授权的网域上。

    应用服务条款链接(可选):必须托管在已获授权的网域上。

    图 1. 一款虚构应用 Tunery 的 Google 帐号关联同意屏幕

  4. 查看“验证状态”。如果您的申请需要验证,请点击“提交验证”按钮,提交您的申请。如需了解详情,请参阅 OAuth 验证要求

আপনার OAuth সার্ভার বাস্তবায়ন করুন

একটি OAuth অনুমোদন কোড প্রবাহ 2.0 সার্ভার বাস্তবায়নের দুই এন্ড পয়েন্ট, যা আপনার সেবা HTTPS দ্বারা দ্বারা উপলব্ধ করে তোলে গঠিত। প্রথম এন্ডপয়েন্ট হল অনুমোদনের এন্ডপয়েন্ট, যা ডেটা অ্যাক্সেসের জন্য ব্যবহারকারীদের কাছ থেকে সম্মতি খোঁজার বা পাওয়ার জন্য দায়ী। অনুমোদনের শেষ পয়েন্ট আপনার ব্যবহারকারীদের কাছে একটি সাইন-ইন UI উপস্থাপন করে যেগুলি ইতিমধ্যে সাইন ইন করেনি এবং অনুরোধ করা অ্যাক্সেসের সম্মতি রেকর্ড করে৷ দ্বিতীয় এন্ডপয়েন্ট হল টোকেন এক্সচেঞ্জ এন্ডপয়েন্ট, যা এনক্রিপ্ট করা স্ট্রিং পেতে ব্যবহৃত হয়, যাকে টোকেন বলা হয়, যা একজন ব্যবহারকারীকে আপনার পরিষেবা অ্যাক্সেস করার অনুমতি দেয়।

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

Google দ্বারা শুরু করা একটি OAuth 2.0 অনুমোদন কোড ফ্লো সেশনের নিম্নলিখিত প্রবাহ রয়েছে:

  1. Google ব্যবহারকারীর ব্রাউজারে আপনার অনুমোদনের শেষ পয়েন্ট খোলে। যদি কোনো অ্যাকশনের জন্য শুধুমাত্র ভয়েস ডিভাইসে প্রবাহ শুরু হয়, তাহলে Google এক্সিকিউশনটিকে একটি ফোনে স্থানান্তর করে।
  2. ব্যবহারকারী সাইন ইন করে, যদি ইতিমধ্যে সাইন ইন না করে থাকে, এবং যদি তারা ইতিমধ্যে অনুমতি না দেয় তবে আপনার API দিয়ে তাদের ডেটা অ্যাক্সেস করার জন্য Google-কে অনুমতি দেয়৷
  3. আপনার পরিষেবা একটি অনুমোদন কোড তৈরি করে এবং Google- এ এটি ফেরৎ। এটি করতে, অনুরোধের সাথে সংযুক্ত অনুমোদন কোড সহ ব্যবহারকারীর ব্রাউজারটিকে Google-এ ফেরত পাঠান৷
  4. Google আপনার টোকেন বিনিময় শেষবিন্দু, যা কোডের সত্যতা যাচাই এবং একটি অ্যাক্সেস টোকেন ও একটি রিফ্রেশ টোকেন ফেরৎ অনুমোদন কোড পাঠায়। অ্যাক্সেস টোকেন হল একটি স্বল্পস্থায়ী টোকেন যা আপনার পরিষেবা API অ্যাক্সেস করার জন্য শংসাপত্র হিসাবে গ্রহণ করে। রিফ্রেশ টোকেন হল একটি দীর্ঘস্থায়ী টোকেন যা Google সংরক্ষণ করতে পারে এবং মেয়াদ শেষ হয়ে গেলে নতুন অ্যাক্সেস টোকেনগুলি অর্জন করতে ব্যবহার করতে পারে৷
  5. ব্যবহারকারী অ্যাকাউন্ট লিঙ্কিং ফ্লো সম্পূর্ণ করার পরে, Google থেকে পাঠানো প্রতিটি পরবর্তী অনুরোধে একটি অ্যাক্সেস টোকেন থাকে।

অনুমোদনের অনুরোধগুলি পরিচালনা করুন

যখন আপনাকে OAuth 2.0 অনুমোদন কোড ফ্লো ব্যবহার করে অ্যাকাউন্ট লিঙ্ক করার প্রয়োজন হয়, তখন Google নিম্নলিখিত প্যারামিটারগুলি অন্তর্ভুক্ত করে এমন একটি অনুরোধ সহ ব্যবহারকারীকে আপনার অনুমোদনের শেষ পয়েন্টে পাঠায়:

অনুমোদনের শেষ পয়েন্ট পরামিতি
client_id আপনি Google-এ যে ক্লায়েন্ট আইডি অ্যাসাইন করেছেন।
redirect_uri যে URLটিতে আপনি এই অনুরোধের প্রতিক্রিয়া পাঠান।
state পুনঃনির্দেশ URI-তে অপরিবর্তিত Google-এ ফেরত পাঠানো হয়।
scope ঐচ্ছিক: সুযোগ স্ট্রিং ডেটা Google জন্য অনুমোদন অনুরোধ করছে উল্লেখ যে একটি শূণ্যস্থান সেট।
response_type প্রতিক্রিয়াতে যে মানের প্রত্যাবর্তন করতে হবে। OAuth এর 2.0 অনুমোদন কোড প্রবাহ জন্য, প্রতিক্রিয়া টাইপ সর্বদা code
user_locale গুগল অ্যাকাউন্ট ভাষা সেটিংস RFC5646 বিন্যাস, ব্যবহারকারীর পছন্দের ভাষায় আপনার সামগ্রী স্থানীয়করণ করতেন।

উদাহরণস্বরূপ, যদি আপনার অনুমোদন শেষবিন্দু পাওয়া যাবে 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&user_locale=LOCALE

সাইন-ইন অনুরোধগুলি পরিচালনা করার জন্য আপনার অনুমোদনের শেষ পয়েন্টের জন্য, নিম্নলিখিত পদক্ষেপগুলি করুন:

  1. তা যাচাই করুন client_id ক্লায়েন্ট আইডি আপনি Google নির্ধারিত ম্যাচ, এবং যে redirect_uri আপনার পরিষেবার জন্য Google দ্বারা সরবরাহিত পুনঃনির্দেশ URL সাথে মেলে। অনাকাঙ্ক্ষিত বা ভুল কনফিগার করা ক্লায়েন্ট অ্যাপগুলিতে অ্যাক্সেস মঞ্জুর করা প্রতিরোধ করার জন্য এই চেকগুলি গুরুত্বপূর্ণ৷ আপনি একাধিক OAuth এর 2.0 প্রবাহ সমর্থন করেন, এছাড়াও নিশ্চিত করুন যে response_type হয় code
  2. ব্যবহারকারী আপনার পরিষেবাতে সাইন ইন করেছেন কিনা তা পরীক্ষা করুন৷ ব্যবহারকারী সাইন ইন না করলে, আপনার পরিষেবার সাইন-ইন বা সাইন-আপ প্রবাহ সম্পূর্ণ করুন৷
  3. আপনার API অ্যাক্সেস করার জন্য Google ব্যবহার করার জন্য একটি অনুমোদন কোড তৈরি করুন। অনুমোদন কোড যেকোন স্ট্রিং মান হতে পারে, তবে এটি অবশ্যই ব্যবহারকারীকে অনন্যভাবে উপস্থাপন করতে হবে, টোকেনটি যে ক্লায়েন্টের জন্য এবং কোডের মেয়াদ শেষ হওয়ার সময়, এবং এটি অনুমানযোগ্য হতে হবে না। আপনি সাধারণত অনুমোদন কোড ইস্যু করেন যা প্রায় 10 মিনিটের পরে মেয়াদ শেষ হয়ে যায়।
  4. নিশ্চিত করুন যে URL দ্বারা নির্দিষ্ট redirect_uri পরামিতি নিম্নলিখিত ফর্ম আছে:
      https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID
      https://oauth-redirect-sandbox.googleusercontent.com/r/YOUR_PROJECT_ID
      
  5. URL দ্বারা নির্দিষ্ট ব্যবহারকারীর ব্রাউজার পুনঃনির্দেশ redirect_uri প্যারামিটার। যখন আপনি সংযোজন করে পুনর্নির্দেশ অনুমোদন কোড আপনি শুধু তৈরি এবং মূল, অপরিবর্তিত রাষ্ট্র মান অন্তর্ভুক্ত করুন 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 আপনার টোকেন এক্সচেঞ্জ এন্ডপয়েন্টে একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেনের জন্য অনুমোদন কোড বিনিময় করার জন্য একটি অনুরোধ পাঠায়।

এই অনুরোধগুলির জন্য, মান 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 নিম্নলিখিত পদক্ষেপগুলি নির্বাহ দ্বারা অনুরোধ:

  1. তা যাচাই করুন client_id শনাক্ত অনুরোধ উৎপত্তি একজন অনুমোদিত উৎপত্তি হিসাবে, এবং যে client_secret প্রত্যাশিত মান মেলে।
  2. যাচাই করুন যে অনুমোদন কোডটি বৈধ এবং মেয়াদ শেষ হয়নি এবং অনুরোধে উল্লেখিত ক্লায়েন্ট আইডি অনুমোদন কোডের সাথে যুক্ত ক্লায়েন্ট আইডির সাথে মেলে।
  3. নিশ্চিত করুন যে URL দ্বারা নির্দিষ্ট redirect_uri পরামিতি প্রারম্ভিক অনুমোদন অনুরোধে ব্যবহৃত মান অভিন্ন।
  4. আপনি উপরের মানদণ্ডের সব যাচাই করতে না পারেন, সঙ্গে একটি HTTP 400 ত্রুটিযুক্ত অনুরোধ ত্রুটি আসতে {"error": "invalid_grant"} শরীরের হিসাবে।
  5. অন্যথায়, একটি রিফ্রেশ টোকেন এবং একটি অ্যাক্সেস টোকেন তৈরি করতে অনুমোদন কোড থেকে ব্যবহারকারী আইডি ব্যবহার করুন৷ এই টোকেনগুলি যে কোনও স্ট্রিং মান হতে পারে, তবে সেগুলি অবশ্যই ব্যবহারকারী এবং ক্লায়েন্টকে অনন্যভাবে উপস্থাপন করতে হবে যার জন্য টোকেনটি রয়েছে এবং সেগুলি অনুমানযোগ্য হতে হবে না। অ্যাক্সেস টোকেনগুলির জন্য, টোকেনের মেয়াদ শেষ হওয়ার সময়ও রেকর্ড করুন, যা সাধারণত আপনি টোকেন ইস্যু করার এক ঘন্টা পরে। রিফ্রেশ টোকেন মেয়াদ শেষ হয় না.
  6. 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 নিম্নলিখিত পদক্ষেপগুলি নির্বাহ দ্বারা অনুরোধ:

  1. তা যাচাই করুন client_id শনাক্ত Google Now এর মত অনুরোধ উৎপত্তি, এবং যে client_secret প্রত্যাশিত মান মেলে।
  2. রিফ্রেশ টোকেন বৈধ কিনা যাচাই করুন এবং অনুরোধে উল্লেখিত ক্লায়েন্ট আইডি রিফ্রেশ টোকেনের সাথে যুক্ত ক্লায়েন্ট আইডির সাথে মেলে।
  3. আপনি উপরের মানদণ্ডের সব যাচাই করতে না পারেন, সঙ্গে একটি HTTP 400 ত্রুটিযুক্ত অনুরোধ ত্রুটি আসতে {"error": "invalid_grant"} শরীরের হিসাবে।
  4. অন্যথায়, একটি অ্যাক্সেস টোকেন তৈরি করতে রিফ্রেশ টোকেন থেকে ব্যবহারকারী আইডি ব্যবহার করুন। এই টোকেনগুলি যে কোনও স্ট্রিং মান হতে পারে, তবে সেগুলি অবশ্যই ব্যবহারকারী এবং ক্লায়েন্টকে অনন্যভাবে উপস্থাপন করতে হবে যার জন্য টোকেনটি রয়েছে এবং সেগুলি অনুমানযোগ্য হতে হবে না। অ্যাক্সেস টোকেনগুলির জন্য, টোকেনের মেয়াদ শেষ হওয়ার সময়ও রেকর্ড করুন, সাধারণত আপনি টোকেন ইস্যু করার এক ঘন্টা পরে।
  5. HTTPS প্রতিক্রিয়ার মূল অংশে নিম্নলিখিত JSON অবজেক্টটি ফেরত দিন:
    {
    "token_type": "Bearer",
    "access_token": " ACCESS_TOKEN ",
    "expires_in": SECONDS_TO_EXPIRATION
    }
ব্যবহারকারীর তথ্যের অনুরোধগুলি পরিচালনা করুন

Userinfo শেষবিন্দু একটি OAuth 2.0 সংরক্ষিত সম্পদ যে লিঙ্ক ব্যবহারকারী সম্পর্কে রিটার্ন দাবী। ইউজার ইনফো এন্ডপয়েন্ট বাস্তবায়ন এবং হোস্ট করা ঐচ্ছিক, নিম্নলিখিত ব্যবহারের ক্ষেত্রে ছাড়া:

আপনার টোকেন এন্ডপয়েন্ট থেকে অ্যাক্সেস টোকেন সফলভাবে পুনরুদ্ধার করার পরে, Google লিঙ্ক করা ব্যবহারকারীর সম্পর্কে প্রাথমিক প্রোফাইল তথ্য পুনরুদ্ধার করার জন্য আপনার ব্যবহারকারীর তথ্য এন্ডপয়েন্টে একটি অনুরোধ পাঠায়।

userinfo এন্ডপয়েন্ট রিকোয়েস্ট হেডার
Authorization header টাইপ বিয়ারারের অ্যাক্সেস টোকেন।

উদাহরণস্বরূপ, যদি আপনার userinfo শেষবিন্দু পাওয়া যাবে https://myservice.example.com/userinfo একটি অনুরোধ নিম্নলিখিত অনুযায়ী প্রদর্শিত হবে:

GET /userinfo HTTP/1.1
Host: myservice.example.com
Authorization: Bearer ACCESS_TOKEN

অনুরোধগুলি পরিচালনা করার জন্য আপনার ব্যবহারকারীর তথ্যের শেষ পয়েন্টের জন্য, নিম্নলিখিত পদক্ষেপগুলি করুন:

  1. অনুমোদন শিরোনাম থেকে অ্যাক্সেস টোকেন বের করুন এবং অ্যাক্সেস টোকেনের সাথে যুক্ত ব্যবহারকারীর জন্য তথ্য ফেরত দিন।
  2. তাহলে অ্যাক্সেস টোকেন অবৈধ, ব্যবহারে কোন HTTP 401 অননুমোদিত ত্রুটি আসতে WWW-Authenticate প্রতিক্রিয়া শীর্ষক। নীচে একটি userinfo ত্রুটি প্রতিক্রিয়া একটি উদাহরণ:
    HTTP/1.1 401 Unauthorized
    WWW-Authenticate: error="invalid_token",
    error_description="The Access Token expired"
    
    যদি একটি 401 অননুমোদিত, বা অন্য কোন অসফল ত্রুটি প্রতিক্রিয়া লিঙ্ক প্রক্রিয়ার সময় ফিরিয়ে দেওয়া হয়, ত্রুটি অ আদায়যোগ্য হবে পুনরুদ্ধারকৃত টোকেন বাতিল করা হবে এবং ব্যবহারকারী থাকবে আবার লিঙ্কিং প্রক্রিয়া শুরু করতে।
  3. অ্যাক্সেস টোকেন বৈধ, রিটার্ন ও HTTP 200 HTTPS দ্বারা প্রতিক্রিয়া দেহের নিম্নলিখিত JSON বস্তু সঙ্গে প্রতিক্রিয়া এমন:

    {
    "sub": "USER_UUID",
    "email": "EMAIL_ADDRESS",
    "given_name": "FIRST_NAME",
    "family_name": "LAST_NAME",
    "name": "FULL_NAME",
    "picture": "PROFILE_PICTURE",
    }
    
    আপনার userinfo শেষবিন্দু আয় একটি HTTP 200 সাফল্য প্রতিক্রিয়া পারেন, টোকেন উদ্ধার এবং দাবী ব্যবহারকারীর গুগলের বিরুদ্ধে নিবন্ধিত অ্যাকাউন্ট

    ব্যবহারকারীর তথ্য শেষ পয়েন্ট প্রতিক্রিয়া
    sub একটি অনন্য আইডি যা আপনার সিস্টেমে ব্যবহারকারীকে শনাক্ত করে।
    email ব্যবহারকারীর ইমেল ঠিকানা।
    given_name ঐচ্ছিক: ব্যবহারকারী প্রথম নাম।
    family_name ঐচ্ছিক: ব্যবহারকারীর শেষ নাম।
    name ঐচ্ছিক: ব্যবহারকারীর সম্পূর্ণ নাম।
    picture ঐচ্ছিক: ব্যবহারকারীর প্রোফাইল ছবি।

আপনার বাস্তবায়ন যাচাই করা হচ্ছে

আপনি ব্যবহার করে আপনার বাস্তবায়ন যাচাই করতে পারেন OAuth এর 2.0 খেলার মাঠ হাতিয়ার।

সরঞ্জামটিতে, নিম্নলিখিত পদক্ষেপগুলি করুন:

  1. কনফিগারেশন ক্লিক করুন OAuth এর 2.0 কনফিগারেশন উইন্ডোটি বন্ধ করুন।
  2. OAuth এর প্রবাহ ক্ষেত্রে, ক্লায়েন্ট-সাইড নির্বাচন করুন।
  3. OAuth এর এন্ডপয়েন্ট ক্ষেত্রে, কাস্টম নির্বাচন করুন।
  4. সংশ্লিষ্ট ক্ষেত্রগুলিতে আপনার OAuth 2.0 এন্ডপয়েন্ট এবং Google- কে আপনার দেওয়া ক্লায়েন্ট আইডি উল্লেখ করুন।
  5. ধাপ 1 বিভাগে, যেকোনো Google সুযোগ নির্বাচন করবেন না। পরিবর্তে, এই ক্ষেত্রটি ফাঁকা রাখুন অথবা আপনার সার্ভারের জন্য বৈধ একটি সুযোগ টাইপ করুন (অথবা যদি আপনি OAuth স্কোপ ব্যবহার না করেন তবে একটি নির্বিচারে স্ট্রিং)। আপনার হয়ে গেলে, অনুমোদন API গুলি ক্লিক করুন।
  6. ধাপ 2 এবং 3 য় ধাপ বিভাগগুলিতে, OAuth এর 2.0 প্রবাহ মধ্য দিয়ে যেতে এবং যাচাই করুন যে প্রতিটি পদক্ষেপ হিসাবে উদ্দীষ্ট কাজ করে।

আপনি ব্যবহার করে আপনার বাস্তবায়ন যাচাই করতে পারেন Google অ্যাকাউন্টের সাথে লিঙ্ক ডেমো হাতিয়ার।

সরঞ্জামটিতে, নিম্নলিখিত পদক্ষেপগুলি করুন:

  1. ক্লিক Google বাটন সঙ্গে সাইন-ইন।
  2. আপনি যে অ্যাকাউন্টটি লিঙ্ক করতে চান তা চয়ন করুন।
  3. পরিষেবা আইডি লিখুন।
  4. Allyচ্ছিকভাবে এক বা একাধিক ক্ষেত্র লিখুন যার জন্য আপনি অ্যাক্সেসের অনুরোধ করবেন।
  5. স্টার্ট ডেমো ক্লিক করুন।
  6. যখন অনুরোধ করা হবে, নিশ্চিত করুন যে আপনি সম্মতি দিতে পারেন এবং লিঙ্কিং অনুরোধটি অস্বীকার করতে পারেন।
  7. নিশ্চিত করুন যে আপনি আপনার প্ল্যাটফর্মে পুনirectনির্দেশিত হয়েছেন।