'Google साइन इन' सिद्धांत की गाइड

Assistant के लिए 'Google साइन-इन' (जीएसआई), उपयोगकर्ताओं को लिंक करने का सबसे आसान अनुभव देता है. साथ ही, यह डेवलपर के लिए इसे लागू करने का सबसे आसान तरीका है. जीएसआई की मदद से, आपकी सेट की गई कार्रवाई, बातचीत के दौरान आपके उपयोगकर्ता की Google प्रोफ़ाइल को ऐक्सेस करने का अनुरोध कर सकती है. साथ ही, उपयोगकर्ता की सहमति मिलने पर, उसका नाम, ईमेल पता, और प्रोफ़ाइल फ़ोटो भी पा सकती है. इसके बाद, आपकी सेट की गई कार्रवाई इस जानकारी का इस्तेमाल करके यह देख सकती है कि आपके सिस्टम में उपयोगकर्ता का Google खाता है या नहीं. अगर नहीं, तो आपकी सेट की गई कार्रवाई उपयोगकर्ता से पूछती है कि क्या वे अपनी Google प्रोफ़ाइल की जानकारी के आधार पर, उपयोगकर्ता से आपके सिस्टम में नया खाता बनाना चाहते हैं.

खाता लिंक करने के लिए, जीएसआई का सुझाव दिया जाता है. ऐसा तब होता है, जब:

  • आपके पास पुष्टि करने का कोई मौजूदा सिस्टम नहीं है और/या आप उम्मीद करते हैं कि सभी उपयोगकर्ताओं के पास Google खाता हो. उदाहरण के लिए, अगर आपकी सेट की गई कार्रवाई खास तौर पर Assistant को टारगेट कर रही है, तो सभी उपयोगकर्ताओं के पास Google खाते होने की उम्मीद की जा सकती है.
  • आपके पास पुष्टि करने का एक मौजूदा सिस्टम है और आपको सिर्फ़ उन उपयोगकर्ताओं को लिंक करना है जिन्होंने अपने Google खातों का इस्तेमाल करके आपके सिस्टम में साइन इन किया है.

जीएसआई आपके लिए सही समाधान है, इसकी पुष्टि करने के लिए खाता लिंक करने का तरीका चुनें पेज देखें.

मुख्य शब्द

जीएसआई के काम करने के तरीके के बारे में पढ़ने से पहले, इन शब्दों के बारे में जानें:

  • Google आईडी टोकन: उपयोगकर्ता की पहचान से जुड़ा हस्ताक्षर किया गया दावा, जिसमें उपयोगकर्ता की Google प्रोफ़ाइल की बुनियादी जानकारी शामिल होती है. जैसे, उपयोगकर्ता का नाम, ईमेल पता, और प्रोफ़ाइल फ़ोटो. Google आईडी टोकन, JSON वेब टोकन (JWT) होता है.

    डिकोड किए गए टोकन का एक उदाहरण यहां दिया गया है:

{
  "sub": 1234567890,        // The unique ID of the user's Google Account
  "iss": "https://accounts.google.com",        // The token's issuer
  "aud": "123-abc.apps.googleusercontent.com", // Client ID assigned to your Actions project
  "iat": 233366400,         // Unix timestamp of the token's creation time
  "exp": 233370000,         // Unix timestamp of the token's expiration time
  "name": "Jan Jansen",
  "given_name": "Jan",
  "family_name": "Jansen",
  "email": "jan@gmail.com", // If present, the user's email address
  "locale": "en_US"
}
  • user.verificationStatus: इस प्रॉपर्टी को सिस्टम सेट करता है. इससे पता चलता है कि मौजूदा सेशन में, पुष्टि किया गया उपयोगकर्ता मौजूद है या नहीं.

  • user.accountLinkingStatus: यह सिस्टम की सेट की गई प्रॉपर्टी है, जो यह बताती है कि मौजूदा सेशन में उपयोगकर्ता के पास लिंक की गई आइडेंटिटी है या नहीं.

  • खाता लिंक करने वाले सिस्टम का सीन: पहले से तय किया गया एक सीन, जो खाता लिंक करने के लिए पुष्टि करने वाले फ़्लो को लागू करता है. साथ ही, इसे इस्तेमाल के कुछ खास उदाहरणों के हिसाब से बनाया जा सकता है.

यह सुविधा कैसे काम करती है

जीएसआई का बुनियादी फ़्लो इस तरह है:

  1. आपकी सेट की गई कार्रवाई, उपयोगकर्ता से अपनी Google प्रोफ़ाइल ऐक्सेस करने की सहमति मांगती है.
  2. उपयोगकर्ता की सहमति मिलने के बाद, आपकी सेट की गई कार्रवाई को Google आईडी टोकन मिलता है. इसमें उपयोगकर्ता की Google प्रोफ़ाइल की जानकारी होती है.
  3. प्रोफ़ाइल का कॉन्टेंट पढ़ने के लिए, टोकन की पुष्टि करें और उसे डिकोड करें. अगर Node.js के लिए Actions on Google फ़ुलफ़िलमेंट लाइब्रेरी का इस्तेमाल किया जाता है, तो यह आपके लिए टोकन की पुष्टि और उसे डिकोड करता है.
  4. आपकी सेट की गई कार्रवाई, इस टोकन का इस्तेमाल करके यह जांच करती है कि उपयोगकर्ता की Google प्रोफ़ाइल की जानकारी आपके सिस्टम में मौजूद है या नहीं.

    1. अगर साइन इन है, तो इसका मतलब है कि उपयोगकर्ता ने पहले ही अपने Google खाते से आपके सिस्टम में साइन इन किया हुआ है. उपयोगकर्ता, अपने Google खाते से लिंक की गई अपनी पहचान से Assistant के साथ बातचीत जारी रख सकता है.
    2. अगर ऐसा नहीं है, तो उपयोगकर्ता, Google आईडी टोकन में दी गई जानकारी की मदद से आपके सिस्टम में एक नया खाता बना सकता है. इसके बाद उपयोगकर्ता, नए खाते से Assistant के साथ बातचीत जारी रख सकता है.

'Google साइन-इन' फ़्लो

इस सेक्शन में, 'Google साइन इन' की मदद से होने वाले अलग-अलग फ़्लो के बारे में बताया गया है.

फ़्लो 1: उपयोगकर्ता की जानकारी आपके सिस्टम में मौजूद है

इस डायग्राम में दिखाया गया है कि जीएसआई के साथ उपयोगकर्ता की जानकारी पहले से ही तैयार है.

इस मामले में, आपको खाता लिंक करने वाले सिस्टम सीन पर स्विच करना होता है और ज़रूरत के मुताबिक वजह देनी होती है. इस सीन में, उपयोगकर्ता से उसकी Google प्रोफ़ाइल की जानकारी ऐक्सेस करने की अनुमति मांगी जाती है.

उपयोगकर्ता की सहमति मिलने के बाद, Assistant एक अनुरोध भेजती है. इसमें user@gmail.com की प्रोफ़ाइल की जानकारी शामिल होती है. इस मामले में, user@gmail.com के Google आईडी टोकन में दी गई जानकारी, आपके सिस्टम के किसी खाते से मैच होती है. इससे आपकी सेट की गई कार्रवाई में मौजूद, उपयोगकर्ता की पहचान उस खाते से अपने-आप लिंक हो जाती है. इसके बाद, आपका वेबहुक किसी डेटाबेस से उपयोगकर्ता के सामान्य ऑर्डर को पढ़ सकता है और उसके मुताबिक जवाब दे सकता है.

फ़्लो 2: उपयोगकर्ता की जानकारी आपके सिस्टम में मौजूद नहीं है

नीचे दिया गया डायग्राम, जीएसआई की मदद से शुरू से अंत तक के फ़्लो को दिखाता है. यह तब होता है, जब उपयोगकर्ता की जानकारी आपके सिस्टम में मौजूद न हो:

इस मामले में, user@gmail.com के लिए Google आईडी टोकन में मौजूद जानकारी, आपके सिस्टम के किसी खाते से मेल नहीं खाती. इसलिए, Assistant उपयोगकर्ता से पूछती है कि क्या उन्हें नया खाता बनाना है. उपयोगकर्ता किसी स्क्रीन किए गए डिवाइस पर ट्रांसफ़र करने के बजाय, बोलकर खाता बनाने की प्रोसेस पूरी कर सकता है.

जब उपयोगकर्ता खाता बनाने के लिए सहमत होता है, तब आपकी सेवा, आईडी टोकन (उपयोगकर्ता का नाम और ईमेल पता) में दी गई जानकारी का इस्तेमाल, उपयोगकर्ता के लिए खाता बनाने के लिए करती है. खाता बन जाने के बाद, आपकी सेट की गई कार्रवाई में उपयोगकर्ता की पहचान, उसके नए Google खाते से लिंक कर दी जाती है.

इस मामले में, उपयोगकर्ता के पास कोई सामान्य ऑर्डर नहीं होता है, क्योंकि वे इस सेवा के लिए नए हैं. इसलिए, आपकी सेट की गई कार्रवाई उनसे पूछती है कि उन्हें क्या ऑर्डर करना है. उपयोगकर्ता से यह भी पूछा जा सकता है कि क्या वह अपने सबसे हाल के ऑर्डर को उसके सामान्य ऑर्डर के तौर पर सेट करना चाहता है.