গুগল কালো সম্প্রদায়ের জন্য জাতিগত সমতা উন্নয়নে প্রতিশ্রুতিবদ্ধ। দেখ কিভাবে.

টিভি এবং ডিভাইসগুলির জন্য গুগল সাইন ইন

আপনি ব্যবহারকারীদের ইন্টারনেট-সংযুক্ত টিভিগুলির মতো সীমিত ইনপুট ক্ষমতা সহ ডিভাইসে তাদের গুগল অ্যাকাউন্টগুলির সাথে আপনার অ্যাপ্লিকেশনটিতে সাইন ইন করতে দিতে পারেন।

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

এই সাইন-ইন প্রবাহটি ব্যবহার করতে, অ্যাপ্লিকেশনটিকে এমন ডিভাইসে চলতে হবে যা নিম্নলিখিত মানদণ্ডগুলি পূরণ করে:

  • ডিভাইসটি অবশ্যই ব্যবহারকারীকে নির্দেশাবলী সহ একটি 40-অক্ষর URL এবং 15-অক্ষরের ব্যবহারকারী কোড প্রদর্শন করতে সক্ষম হতে হবে।
  • ডিভাইসটি অবশ্যই ইন্টারনেটের সাথে সংযুক্ত থাকতে হবে।

একটি ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট পান

আপনার অ্যাপ্লিকেশনটির গুগলের সাইন ইন শেষ পয়েন্টগুলিতে অনুরোধ করার জন্য একটি OAuth 2.0 ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট দরকার।

আপনার প্রকল্পের ক্লায়েন্ট আইডি এবং ক্লায়েন্ট গোপনীয়তা পেতে, নিম্নলিখিতটি করুন:

  1. একটি বিদ্যমান OAuth 2.0 শংসাপত্র নির্বাচন করুন বা শংসাপত্র পৃষ্ঠা খুলুন।
  2. আপনি যদি ইতিমধ্যে এটি না করে থাকেন তবে শংসাপত্র তৈরি করুন> OAuth ক্লায়েন্ট আইডি ক্লিক করে এবং শংসাপত্রগুলি তৈরি করার জন্য প্রয়োজনীয় তথ্য সরবরাহ করে আপনার প্রকল্পের OAuth 2.0 শংসাপত্র তৈরি করুন।
  3. OAuth এর 2.0 ক্লায়েন্ট ID- র বিভাগে ক্লায়েন্ট আইডি দেখুন। বিশদ জন্য ক্লায়েন্ট আইডি ক্লিক করুন।

আপনি যদি নতুন ক্লায়েন্ট আইডি তৈরি করে থাকেন তবে টিভি এবং সীমাবদ্ধ ইনপুট ডিভাইস অ্যাপ্লিকেশন প্রকারটি নির্বাচন করুন।

একটি ব্যবহারকারীর কোড এবং যাচাইয়ের URL পান

একবার কোনও ব্যবহারকারী কোনও গুগল অ্যাকাউন্ট ব্যবহার করে সাইন ইন করার জন্য অনুরোধ করলে, আপনি ওআউথ ২.০ ডিভাইসের শেষ পয়েন্ট, https://oauth2.googleapis.com/device/code HTTP পোষ্ট অনুরোধ প্রেরণ করে একটি ব্যবহারকারী কোড এবং যাচাইকরণ URL পাবেন obtain অনুরোধের সাথে আপনার ক্লায়েন্ট আইডি এবং আপনার প্রয়োজনীয় স্কোপের একটি তালিকা অন্তর্ভুক্ত করুন। আপনি যদি কেবলমাত্র তাদের Google অ্যাকাউন্টের সাহায্যে সাইন ইন করতে চান তবে কেবল profile এবং email স্কোপের জন্য অনুরোধ করুন; বা, আপনি যদি ব্যবহারকারীদের পক্ষে কোনও সমর্থিত এপিআই কল করার অনুমতি চাইতে চান তবে profile এবং email স্কোপগুলি ছাড়াও প্রয়োজনীয় স্কোপের অনুরোধ করুন।

নিম্নলিখিতটি একটি ব্যবহারকারীর কোডের জন্য একটি উদাহরণ অনুরোধ:

POST /device/code HTTP/1.1
Host: oauth2.googleapis.com
Content-Type: application/x-www-form-urlencoded

client_id=CLIENT_ID&scope=email%20profile

curl ব্যবহার করে:

curl -d "client_id=CLIENT_ID&scope=email profile" https://oauth2.googleapis.com/device/code

প্রতিক্রিয়াটি JSON অবজেক্ট হিসাবে ফিরে এসেছে:

{
  "device_code" : "4/4-GMMhmHCXhWEzkobqIHGG_EnNYYsAkukHspeYUk9E8",
  "user_code" : "GQVQ-JKEC",
  "verification_url" : "https://www.google.com/device",
  "expires_in" : 1800,
  "interval" : 5
}

আপনার অ্যাপ প্রদর্শন user_code এবং verification_url ব্যবহারকারীকে মূল্যবোধ, এবং একই সময়ে, নির্বাচনে সাইন-ইন নিদিষ্ট সময়ে শেষবিন্দু interval মধ্যে হয় ব্যবহারকারী চিহ্ন বা নির্দিষ্ট সময় পর্যন্ত যতক্ষণ না expires_in পেরিয়ে গেছে।

ব্যবহারকারীর কোড এবং যাচাইয়ের URL প্রদর্শন করুন

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

verification_url এবং user_code মানগুলি পরিবর্তিত হতে পারে। আপনার ইউআইকে এমনভাবে ডিজাইন করুন যাতে নিম্নলিখিত সীমাগুলি পরিচালনা করতে পারে:

  • 15 W আকারের অক্ষরগুলি পরিচালনা করতে user_code অবশ্যই প্রশস্ত ক্ষেত্রের মধ্যে প্রদর্শিত হবে।
  • 40 অক্ষর দীর্ঘ লম্বা ইউআরএল স্ট্রিং পরিচালনা করার জন্য verification_url অবশ্যই প্রস্থে যথেষ্ট প্রশস্ত ফিল্ডে প্রদর্শিত হবে।

উভয় স্ট্রিংয়ে US-ASCII অক্ষর সেট থেকে যে কোনও মুদ্রণযোগ্য অক্ষর থাকতে পারে।

আপনি যখন user_code স্ট্রিংটি প্রদর্শন করেন, user_code স্ট্রিংটি সংশোধন করবেন না (যেমন কেস পরিবর্তন করা বা অন্য ফর্ম্যাটিং অক্ষর সন্নিবেশ করা) কারণ ভবিষ্যতে user_code ফর্ম্যাট পরিবর্তন হলে আপনার অ্যাপ্লিকেশনটি ভেঙে যেতে পারে।

আপনি যদি চয়ন করেন তবে প্রদর্শনের উদ্দেশ্যে URL থেকে স্কিমটি সরিয়ে আপনি verification_url স্ট্রিংটি সংশোধন করতে পারেন। যদি আপনি তা করেন তবে নিশ্চিত হয়ে নিন যে আপনার অ্যাপ্লিকেশনটি "HTTP" এবং "https" উভয় রূপকে পরিচালনা করতে পারে। অন্যথায় verification_url স্ট্রিংটি সংশোধন করবেন না।

যখন ব্যবহারকারী যাচাইকরণের URL এ নেভিগেট করে, তারা নীচের মতো একটি পৃষ্ঠা দেখবে:

একটি কোড প্রবেশ করে একটি ডিভাইস সংযুক্ত করুন

ব্যবহারকারী ব্যবহারকারী কোডে প্রবেশের পরে, গুগল সাইন ইন সাইটটি নিম্নলিখিতগুলির মতো একটি সম্মতি স্ক্রিন উপস্থাপন করে:

ডিভাইস ক্লায়েন্টের সম্মতির পর্দার উদাহরণ

যদি ব্যবহারকারী মঞ্জুর করে ক্লিক করে, তবে আপনার অ্যাপ্লিকেশনটি ব্যবহারকারীকে সনাক্ত করতে একটি আইডি টোকেন, গুগল এপিআইগুলিতে কল করার জন্য একটি অ্যাক্সেস টোকন এবং নতুন টোকেন অর্জনের জন্য একটি রিফ্রেশ টোকন পেতে পারে।

একটি আইডি টোকেন এবং টোকেন রিফ্রেশ করুন

আপনার অ্যাপ্লিকেশনটি ব্যবহারকারীর কোড এবং যাচাইকরণের URL প্রদর্শন করার পরে, আপনি ডিভাইসটির শেষ বিন্দু থেকে প্রাপ্ত ডিভাইস কোড দিয়ে টোকেন শেষ পয়েন্ট ( https://oauth2.googleapis.com/token ) পোলিং শুরু করুন। বিরতিতে টোকেন শেষ পয়েন্টটি বিরতিতে, সেকেন্ডে interval

নীচে একটি অনুরোধ অনুরোধ:

POST /token HTTP/1.1
Host: oauth2.googleapis.com
Content-Type: application/x-www-form-urlencoded

client_id=CLIENT_ID&client_secret=CLIENT_SECRET&code=DEVICE_CODE&grant_type=http://oauth.net/grant_type/device/1.0

curl ব্যবহার করে:

curl -d "client_id=CLIENT_ID&client_secret=CLIENT_SECRET&code=DEVICE_CODE&grant_type=http://oauth.net/grant_type/device/1.0" https://oauth2.googleapis.com/token

যদি ব্যবহারকারী এখনও অনুরোধটি অনুমোদন না করে থাকে তবে প্রতিক্রিয়া নিম্নরূপ:

{
  "error" : "authorization_pending"
}

আপনার অ্যাপ্লিকেশনটিতে এমন অনুরোধগুলি এমন হারে পুনরাবৃত্তি করা উচিত যা interval মান অতিক্রম করবে না। যদি আপনার অ্যাপ্লিকেশনটি খুব দ্রুত পোল করে তবে প্রতিক্রিয়াটি নিম্নরূপ:

{
  "error" : "slow_down"
}

একবার ব্যবহারকারী সাইন ইন করে এবং আপনার অ্যাপ্লিকেশনটিকে আপনার অনুরোধ করা স্কোপগুলিতে অ্যাক্সেস মঞ্জুর করার পরে, আপনার অ্যাপ্লিকেশনের পরবর্তী অনুরোধের প্রতিক্রিয়ায় একটি আইডি টোকেন, একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকন অন্তর্ভুক্ত রয়েছে:

0 বি 441 এ 6670

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

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

আইডি টোকেন থেকে ব্যবহারকারীর প্রোফাইল তথ্য পান

কোনও JWT- ডিকোডিং লাইব্রেরির সাথে আইডি টোকনটি ডিকোড করে আপনি সাইন ইন ব্যবহারকারী সম্পর্কে প্রোফাইল তথ্য পেতে পারেন। উদাহরণস্বরূপ, Auth0 jwt-decode জাভাস্ক্রিপ্ট লাইব্রেরি ব্যবহার করে:

var user_profile = jwt_decode(id_token);

// The "sub" field is available on all ID tokens. This value is unique for each
// Google account and can be used to identify the user. (But do not send this
// value to your server; instead, send the whole ID token so its authenticity
// can be verified.)
var user_id = user_profile["sub"];

// These values are available when you request the "profile" and "email" scopes.
var user_email = user_profile["email"];
var email_verified = user_profile["email_verified"];
var user_name = user_profile["name"];
var user_photo_url = user_profile["picture"];
var user_given_name = user_profile["given_name"];
var user_family_name = user_profile["family_name"];
var user_locale = user_profile["locale"];

অধিক তথ্য