OAuth और Google साइन-इन के कॉन्सेप्ट की गाइड (Dialogflow)

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

खाता लिंक करने के लिए, OAuth और 'Google साइन इन' का इस्तेमाल करने का सुझाव दिया जाता है. ऐसा तब ही किया जा सकता है, जब इनमें से कोई भी ये बातें लागू होती हैं:

  • आपके पास एक ऐसी कार्रवाई है जो कई प्लैटफ़ॉर्म पर उपलब्ध है (उदाहरण के लिए, अगर कार्रवाई, Android ऐप्लिकेशन के साथ काम करती है).
  • आपके पास पुष्टि करने का एक सिस्टम मौजूद है और आपको उपयोगकर्ताओं को ये काम करने की अनुमति देनी है Google से बाहर के खातों से अपनी पहचान को लिंक कर सकती है. उदाहरण के लिए, अगर आपके पास और वह यह पक्का करना चाहता है कि उपयोगकर्ता अपने मौजूदा खाते में मिले पॉइंट.

OAuth और 'Google साइन-इन' आपके लिए सही विकल्प हैं, इसकी पुष्टि करने के लिए अपना खाता लिंक करने का टाइप चुनें पेज.

मुख्य शब्द

OAuth और '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"
}
  • खाते में साइन इन करने के लिए हेल्पर इंटेंट: हेल्पर इंटेंट, जिसे अनुरोध करने के लिए कॉल किया जाता है Assistant से खाता लिंक करने का फ़्लो. ज़्यादा जानकारी के लिए, यह देखें खाते में साइन इन करना.
    • कॉन्टेक्स्ट स्ट्रिंग: कस्टमाइज़ की गई एक स्ट्रिंग, जिसे आपने खाते में जोड़ा है साइन-इन हेल्पर इंटेंट, जो उपयोगकर्ता को बताता है कि आपको क्यों लिंक करना है उसका खाता.
  • ऑथराइज़ेशन कोड फ़्लो: ऐसा OAuth 2.0 फ़्लो जिसे आपके साथ लागू किया जा सकता है OAuth + Google साइन-इन. इस फ़्लो के लिए दो एंडपॉइंट ज़रूरी हैं:
    • ऑथराइज़ेशन एंडपॉइंट: वह एंडपॉइंट जो साइन-इन यूज़र इंटरफ़ेस (यूआई) दिखाता है साइन इन नहीं किया हुआ है. यह उन सहमति को रिकॉर्ड करता है ने कुछ समय के लिए मान्य ऑथराइज़ेशन कोड के तौर पर ऐक्सेस का अनुरोध किया हो.
    • टोकन एक्सचेंज एंडपॉइंट: यह एंडपॉइंट दो तरह के लिए ज़िम्मेदार है एक्सचेंज के:
      1. यह नीति, लंबे समय से काम करने वाले रीफ़्रेश टोकन के लिए ऑथराइज़ेशन कोड को शेयर करती है और थोड़े समय तक चलने वाले ऐक्सेस टोकन की ज़रूरत होगी. यह एक्सचेंज तब होता है, जब उपयोगकर्ता खाता जोड़ने के फ़्लो से गुज़रता है.
      2. यह कुछ समय के लिए उपलब्ध ऐक्सेस के लिए, लंबे समय तक चलने वाले रीफ़्रेश टोकन का लेन-देन करता है टोकन. यह एक्सचेंज तब होता है, जब Google को नए ऐक्सेस टोकन की ज़रूरत होती है क्योंकि जिसकी समयसीमा खत्म हो चुकी थी.
  • इंप्लिसिट कोड फ़्लो: एक OAuth 2.0 फ़्लो, जिसे इसके साथ लागू किया जा सकता है OAuth + Google साइन-इन. इस फ़्लो के लिए सिर्फ़ एक ऑथराइज़ेशन एंडपॉइंट ज़रूरी है. इस फ़्लो के दौरान, Google आपका ऑथराइज़ेशन एंडपॉइंट उपयोगकर्ता के ब्राउज़र खोलें. अगर साइन-इन सफल होता है, तो लंबे समय तक चलने वाला ऐक्सेस टोकन Google. यह ऐक्सेस टोकन अब Assistant की मदद से अपने काम में मदद पाएँ.
  • ऐक्सेस टोकन: एक टोकन, जो आपकी सेवा को उपयोगकर्ता का डेटा है. ऐक्सेस टोकन हर उपयोगकर्ता से जुड़े होते हैं.
  • रीफ़्रेश टोकन: एक टोकन जिसे कुछ समय के लिए उपलब्ध ऐक्सेस टोकन की समयसीमा खत्म हो गई है.

ज़रूरी शर्तें

OAuth और 'Google साइन-इन' को लिंक करने के लिए, आपको इन चीज़ों की ज़रूरत होगी:

  • OAuth 2 सर्वर
  • टोकन एक्सचेंज एंडपॉइंट

    टोकन एक्सचेंज एंडपॉइंट को बढ़ाया जाना चाहिए, ताकि Google के साथ काम किया जा सके किसी आईडी टोकन से अपने-आप लिंक होने और खाता बनाने के लिए प्रोटोकॉल (यानी, अनुरोधों में intent=get और intent=create पैरामीटर जोड़ें यह एंडपॉइंट).

यह कैसे काम करता है

इस सेक्शन में, OAuth और 'Google साइन-इन' के सामान्य फ़्लो के बारे में बताया गया है. नीचे दिए गए सेक्शन में, OAuth और जीएसआई फ़्लो के बारे में बताया गया है. आपकी विज्ञापन सेटिंग के आधार पर, अपनी आवाज़ के ज़रिए खाता बनाना और b) चाहे आप ऑथराइज़ेशन कोड फ़्लो.

बुनियादी फ़्लो इस तरह से है:

  1. आपकी सेट की गई कार्रवाई, उपयोगकर्ता से Google पर अपनी प्रोफ़ाइल ऐक्सेस करने की सहमति मांगती है.
  2. उपयोगकर्ता की सहमति के बाद, आपकी कार्रवाई को एक Google आईडी टोकन मिलता है जो उपयोगकर्ता की Google प्रोफ़ाइल की जानकारी होती है.
  3. प्रोफ़ाइल का कॉन्टेंट पढ़ने के लिए, आपको टोकन की पुष्टि करनी होगी और उसे डिकोड करना होगा.
  4. आपका Action इस टोकन का इस्तेमाल यह देखने के लिए करता है कि उपयोगकर्ता की Google प्रोफ़ाइल है या नहीं आपके सिस्टम में जानकारी मौजूद होती है.
    1. अगर ऐसा होता है, तो उपयोगकर्ता ने पहले ही अपने सिस्टम के साथ आपके सिस्टम में साइन इन किया हुआ है Google खाते और Assistant, उपयोगकर्ता की पहचान को Google खाता. उपयोगकर्ता, Assistant के साथ अपना खाता लिंक करें.
    2. अगर ऐसा नहीं होता, तो पांचवां चरण देखें.
  5. उपयोगकर्ता इनमें से कोई एक काम कर सकता है: a) अपनी Google प्रोफ़ाइल का इस्तेमाल करके नया खाता बना सकता है जानकारी या b) किसी दूसरे खाते से अपने सिस्टम में साइन इन करें. कॉन्टेंट बनाने लोगों को मिलने वाले विकल्प अलग-अलग होते हैं. ये विकल्प इस बात पर निर्भर करते हैं कि आपने चालू किया है या नहीं ध्वनि से खाता बनाना अक्षम करें. अगर उपयोगकर्ता आपकी ओर से सिस्टम से साइन इन किया है, तो स्टैंडर्ड OAuth फ़्लो शुरू हो जाता है.
  6. जब उपयोगकर्ता नया खाता बनाता है या सेवा देने वाली किसी दूसरी कंपनी के प्लैटफ़ॉर्म पर साइन इन करता है, आपकी सेवा, Google को ऐक्सेस टोकन दिखाती है. (अगर आप ऑथराइज़ेशन कोड फ़्लो, आपकी सेवा रीफ़्रेश टोकन भी दिखाती है.)
  7. उपयोगकर्ता अब Assistant के साथ बातचीत जारी रखने के लिए, खाता लिंक किया गया.

OAuth और जीएसआई फ़्लो

इस सेक्शन में, OAuth और जीएसआई के साथ होने वाले अलग-अलग फ़्लो की जानकारी दी गई है. ये डायग्राम, ऑथराइज़ेशन कोड फ़्लो के साथ होने वाले फ़्लो पर जाते हैं को इंप्लिसिट कोड फ़्लो के बजाय इस्तेमाल किया जा सकता है और यह मान लिया जा सकता है कि Dialogflow का इस्तेमाल आपकी कार्रवाई के लिए आम भाषा समझने का समाधान.

उपयोगकर्ता के आपकी सेट की गई कार्रवाई को शुरू करने के बाद, हर फ़्लो में ये सामान्य चरण शामिल होते हैं:

ऊपर दिए गए फ़्लो में, actions.intent.SIGN_IN हेल्पर इंटेंट को संदर्भ स्ट्रिंग को कस्टमाइज़ किया जाता है. यह इंटेंट, उपयोगकर्ता से ऐक्सेस करने की अनुमति मांगता है Google पर मौजूद उनकी प्रोफ़ाइल की जानकारी. उपयोगकर्ता की सहमति के बाद, Assistant एक अनुरोध जिसमें user@gmail.com की प्रोफ़ाइल जानकारी शामिल है.

इस चरण के बाद के फ़्लो इस आधार पर अलग-अलग होते हैं कि आपने खाता कॉन्फ़िगर किया है या नहीं Voice के साथ लिंक करने की सुविधा मिलती है. साथ ही, यह भी बताया जाता है कि उपयोगकर्ता की जानकारी पहले से ही आपके Merchant Center खाते में मौजूद है या नहीं सिस्टम. इन सभी फ़्लो के बारे में नीचे दिए गए सेक्शन में बताया गया है.

आवाज़ खाता बनाने की सुविधा चालू होने पर आने वाली फ़्लो

इस सेक्शन में, खाता लिंक करने के फ़्लो की जानकारी दी गई है. खाता लिंक करने की प्रोसेस चालू करने पर वॉइस के ज़रिए खाता बनाने की सुविधा मिलती है.

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

इस मामले में, user@gmail.com का इस्तेमाल करने वाला उपयोगकर्ता आपके बैकएंड में मौजूद है, इस तरह आपका टोकन एक्सचेंज एंडपॉइंट, उपयोगकर्ता के लिए टोकन दिखाता है. उपयोगकर्ता का आपकी सेट की गई कार्रवाई में पहचान को अब उनके Google खाते से लिंक कर दिया गया है. उपयोगकर्ता का ओरिजनल अनुरोध (“सामान्य ऑर्डर करें”), कस्टम इंटेंट order_drink. से मेल खाता है इसके बाद, आपका वेबहुक, मैच होने वाले इंटेंट को पूरा करने का काम करता है और आपकी क्वेरी user@gmail.com के आम तौर पर किए जाने वाले ऑर्डर का डेटाबेस. इसके बाद उपयोगकर्ता, अपने Assistant से बातचीत करें.

फ़्लो 2: उपयोगकर्ता की जानकारी मौजूद नहीं है और उपयोगकर्ता खाता बनाता है

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

a) उनकी Google प्रोफ़ाइल की जानकारी का इस्तेमाल करके, अपने सिस्टम पर नया खाता बनाएं, जो आवाज़ के ज़रिए पूरा किया जाता है

b) किसी दूसरे खाते से अपने सिस्टम में साइन इन करें

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

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

फ़्लो 3: उपयोगकर्ता की जानकारी मौजूद नहीं है और उपयोगकर्ता ने किसी दूसरे खाते से साइन इन किया है

आपने आवाज़ से खाता बनाने की सुविधा चालू की है, इसलिए Assistant उपयोगकर्ता से पूछती है कि क्या तो वह इनमें से कोई एक काम करना चाहे:

a) उनकी Google प्रोफ़ाइल की जानकारी का इस्तेमाल करके, अपने सिस्टम पर नया खाता बनाएं, जो आवाज़ के ज़रिए पूरा किया जाता है

b) किसी दूसरे खाते से अपने सिस्टम में साइन इन करें

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

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

ध्वनि खाता बनाने की प्रक्रिया बंद की गई

इस सेक्शन में, खाता लिंक करने का फ़्लो बताया गया है. खाता लिंक करने का फ़्लो बंद करने पर क्या होता है वॉइस के ज़रिए खाता बनाने की सुविधा मिलती है.

फ़्लो 4: उपयोगकर्ता की जानकारी मौजूद नहीं है

आपने आवाज़ से खाता बनाने की सुविधा चालू नहीं की है और उपयोगकर्ता आपके खाते में मौजूद नहीं है बैकएंड में कोई गड़बड़ी नहीं मिलती. इसलिए, स्टैंडर्ड OAuth फ़्लो शुरू हो जाता है. Assistant आपकी उपयोगकर्ता के ब्राउज़र में ऑथराइज़ेशन एंडपॉइंट (अगर फ़्लो सिर्फ़ वॉइस पर शुरू हुआ हो तो Google, एक्ज़ीक्यूशन को स्क्रीन वाले डिवाइस पर ट्रांसफ़र करता है). उपयोगकर्ता ये काम कर सकता है: इनमें से किसी एक को चुनें) या b) किसी अन्य खाते के साथ एक नया खाता बनाएँ . OAuth फ़्लो के बारे में ज़्यादा जानने के लिए, यहां जाएं: OAuth का इस्तेमाल करने के बारे में जानकारी देने वाली गाइड.

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