Google अश्वेत समुदायों के लिए नस्लीय समानता को आगे बढ़ाने के लिए प्रतिबद्ध है. देखें के कैसे।

टीवी और उपकरणों के लिए Google साइन-इन

आप उपयोगकर्ताओं को अपने ऐप में अपने Google खातों के साथ सीमित इनपुट क्षमताओं वाले उपकरणों जैसे इंटरनेट से जुड़े टीवी पर साइन इन करने दे सकते हैं।

एप्लिकेशन उपयोगकर्ता के लिए एक छोटा कोड और साइन-इन URL प्रदर्शित करता है। फिर, उपयोगकर्ता एक वेब ब्राउज़र में साइन-इन URL खोलता है, कोड दर्ज करता है, और उपयोगकर्ता की साइन-इन जानकारी तक पहुंचने के लिए ऐप की अनुमति देता है। अंत में, एप्लिकेशन को पुष्टि मिलती है और उपयोगकर्ता में प्रवेश किया जाता है।

इस साइन-इन प्रवाह का उपयोग करने के लिए, ऐप को एक ऐसे उपकरण पर चलना चाहिए जो निम्नलिखित मानदंडों को पूरा करता है:

  • डिवाइस को उपयोगकर्ता के निर्देशों के साथ 40-चरित्र URL और 15-वर्ण उपयोगकर्ता कोड प्रदर्शित करने में सक्षम होना चाहिए।
  • डिवाइस इंटरनेट से जुड़ा होना चाहिए।

क्लाइंट आईडी और क्लाइंट सीक्रेट प्राप्त करें

Google के साइन-इन एंडपॉइंट्स में अनुरोध करने के लिए आपके ऐप को OAuth 2.0 क्लाइंट आईडी और क्लाइंट सीक्रेट की आवश्यकता है।

अपनी परियोजना के ग्राहक आईडी और ग्राहक रहस्य को खोजने के लिए, निम्नलिखित कार्य करें:

  1. मौजूदा OAuth 2.0 क्रेडेंशियल का चयन करें या क्रेडेंशियल पृष्ठ खोलें।
  2. यदि आपने पहले से ऐसा नहीं किया है, तो Create क्रेडेंशियल> OAuth क्लाइंट आईडी पर क्लिक करके और क्रेडेंशियल्स बनाने के लिए आवश्यक जानकारी प्रदान करके अपनी परियोजना के OAuth 2.0 क्रेडेंशियल्स बनाएं
  3. OAuth 2.0 क्लाइंट आईडी अनुभाग में ग्राहक आईडी के लिए देखो। विवरण के लिए, क्लाइंट आईडी पर क्लिक करें।

यदि आप एक नई क्लाइंट आईडी बना रहे हैं, तो टीवी और सीमित इनपुट डिवाइस एप्लिकेशन प्रकार चुनें।

उपयोगकर्ता कोड और सत्यापन URL प्राप्त करें

जब कोई उपयोगकर्ता Google खाते का उपयोग करने के लिए साइन इन करने का अनुरोध करता है, तो आप OAuth 2.0 डिवाइस एंडपॉइंट, https://oauth2.googleapis.com/device/code HTTP POST अनुरोध भेजकर उपयोगकर्ता कोड और सत्यापन URL प्राप्त करते हैं। अनुरोध के साथ आपकी क्लाइंट आईडी और आपके द्वारा आवश्यक स्कोप की एक सूची शामिल करें। यदि आप केवल अपने 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 पर साइन-इन एंडपॉइंट का चुनाव करता interval जब तक कि उपयोगकर्ता के संकेत या expires_in द्वारा निर्दिष्ट समय बीत चुका हो।

उपयोगकर्ता कोड और सत्यापन URL प्रदर्शित करें

डिवाइस एंडपॉइंट से उपयोगकर्ता कोड और सत्यापन URL प्राप्त करने के बाद, उन्हें प्रदर्शित करें और उपयोगकर्ता को URL खोलने और उपयोगकर्ता कोड दर्ज करने का निर्देश दें।

के मूल्यों verification_url और user_code परिवर्तन के अधीन हैं। अपने UI को इस तरह से डिज़ाइन करें जो निम्नलिखित सीमाओं को संभाल सके:

  • user_code को 15 W -sized वर्णों को संभालने के लिए पर्याप्त फ़ील्ड में प्रदर्शित किया जाना चाहिए।
  • 40 अक्षर लंबे होने वाले URL स्ट्रिंग को संभालने के लिए verification_url url को पर्याप्त विस्तृत फ़ील्ड में प्रदर्शित किया जाना चाहिए।

दोनों तार में US-ASCII वर्ण सेट से कोई भी मुद्रण योग्य वर्ण हो सकता है।

जब आप user_code स्ट्रिंग प्रदर्शित करते हैं, तो स्ट्रिंग को किसी भी तरह से संशोधित न करें (जैसे कि मामला बदलना या अन्य स्वरूपण वर्ण सम्मिलित करना), क्योंकि भविष्य में कोड का प्रारूप बदलता है तो आपका ऐप टूट सकता है।

यदि आप चुनते हैं तो आप प्रदर्शन प्रयोजनों के लिए URL से स्कीम को हटाकर verification_url url स्ट्रिंग को संशोधित कर सकते हैं। यदि आप करते हैं, तो सुनिश्चित करें कि आपका ऐप "http" और "https" दोनों प्रकारों को संभाल सकता है। अन्यथा verification_url स्ट्रिंग को संशोधित न करें।

जब उपयोगकर्ता सत्यापन URL पर जाता है, तो उसे निम्न के जैसा एक पृष्ठ दिखाई देता है:

एक कोड दर्ज करके एक उपकरण कनेक्ट करें

उपयोगकर्ता द्वारा उपयोगकर्ता कोड दर्ज करने के बाद, Google साइन-इन साइट निम्नलिखित के समान एक सहमति स्क्रीन प्रस्तुत करती है:

डिवाइस क्लाइंट के लिए उदाहरण सहमति स्क्रीन

यदि उपयोगकर्ता अनुमति पर क्लिक करता है, तो आपका ऐप उपयोगकर्ता की पहचान करने के लिए एक आईडी टोकन, Google एपीआई को कॉल करने के लिए एक पहुंच टोकन, और नए टोकन प्राप्त करने के लिए एक ताज़ा टोकन प्राप्त कर सकता है।

एक आईडी टोकन प्राप्त करें और टोकन ताज़ा करें

जब आपका ऐप उपयोगकर्ता कोड और सत्यापन URL प्रदर्शित करता है, तो डिवाइस एंडपॉइंट से प्राप्त डिवाइस कोड के साथ टोकन एंडपॉइंट ( https://oauth2.googleapis.com/token ) पर क्लिक करना शुरू 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 API को उस उपयोगकर्ता को अधिकृत करने के लिए एक्सेस टोकन का उपयोग कर सकता है।

आईडी और एक्सेस टोकन सीमित जीवनकाल हैं। टोकन के जीवनकाल से परे उपयोगकर्ता को साइन इन करने के लिए, ताज़ा टोकन स्टोर करें और नए टोकन का अनुरोध करने के लिए इसका उपयोग करें।

आईडी टोकन से उपयोगकर्ता प्रोफ़ाइल जानकारी प्राप्त करें

आप किसी भी 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"];

अधिक जानकारी