OAuth लिंक करने के कॉन्सेप्ट की गाइड

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

अगर ये बातें लागू होती हैं, तो खाता लिंक करने के लिए OAuth लिंक करने का सुझाव दिया जाता है:

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

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

मुख्य शब्द

OAuth लिंकिंग के काम करने के तरीके के बारे में पढ़ने से पहले, इन शब्दों के बारे में अच्छी तरह से जान लें:

  • user.verificationStatus: इस प्रॉपर्टी को सिस्टम सेट करता है. इससे पता चलता है कि मौजूदा सेशन में, पुष्टि किया गया उपयोगकर्ता मौजूद है या नहीं.

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

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

  • ऑथराइज़ेशन कोड फ़्लो: OAuth 2.0 फ़्लो के दौरान, Google आपका ऑथराइज़ेशन एंडपॉइंट, उपयोगकर्ता के ब्राउज़र में खोलता है. अगर साइन इन हो जाता है, तो आपकी सेवा एक ऑथराइज़ेशन कोड बनाती है और उसे Google को लौटा देती है. Google आपके टोकन एक्सचेंज एंडपॉइंट पर यह ऑथराइज़ेशन कोड भेजता है, जो कोड की प्रामाणिकता की पुष्टि करता है. साथ ही, ऐक्सेस टोकन और रीफ़्रेश टोकन दिखाता है.

    इस फ़्लो के लिए दो एंडपॉइंट ज़रूरी हैं:

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

  • ऐक्सेस टोकन: एक ऐसा टोकन जो आपकी सेवा को उपयोगकर्ता के डेटा के कुछ हिस्सों को ऐक्सेस करने की अनुमति देता है. ऐक्सेस टोकन, हर उपयोगकर्ता से जुड़े होते हैं. इसलिए, इनका अनुमान नहीं लगाया जा सकता.

  • रीफ़्रेश टोकन: एक टोकन जिसे कुछ समय के लिए इस्तेमाल होने वाले ऐक्सेस टोकन की समयसीमा खत्म होने के बाद नए ऐक्सेस टोकन से बदला जाता है.

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

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

ऑथराइज़ेशन कोड के फ़्लो की खास जानकारी इस तरह से दी जा सकती है:

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

इंप्लिसिट कोड फ़्लो की खास जानकारी को इस तरह समझा जा सकता है:

  1. आपकी सेट की गई कार्रवाई, उपयोगकर्ता से पूछती है कि क्या वे अपने खाते को आपकी सेवा से लिंक करना चाहते हैं.
  2. जब उपयोगकर्ता खाते लिंक करने की सहमति देता है, तब Google उसके ब्राउज़र में आपका ऑथराइज़ेशन एंडपॉइंट खोलता है.
  3. अगर उपयोगकर्ता ने पहले से साइन इन नहीं किया है, तो वह साइन इन करता है और Google को आपके एपीआई का इस्तेमाल करके, अपना डेटा ऐक्सेस करने की अनुमति देता है. ऐसा तब किया जाता है, जब उपयोगकर्ता ने पहले से अनुमति न दी हो.
  4. आपकी सेवा एक ऐक्सेस टोकन बनाती है और उपयोगकर्ता के ब्राउज़र को अनुरोध से अटैच किए गए ऐक्सेस टोकन के साथ उपयोगकर्ता के ब्राउज़र को वापस Google पर रीडायरेक्ट करती है.
  5. जब उपयोगकर्ता खाता जोड़ने की प्रक्रिया पूरी कर लेता है, तब Google आपकी सेवा के एपीआई को कॉल करता है और हर अनुरोध के साथ ऐक्सेस टोकन जोड़ देता है. आपकी सेवा इस बात की पुष्टि करती है कि ऐक्सेस टोकन Google को एपीआई ऐक्सेस करने की अनुमति देता है या नहीं. इसके बाद, वह एपीआई कॉल पूरा करता है.

यह ऑथराइज़ेशन कोड का बुनियादी फ़्लो है:

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

OAuth लिंकिंग फ़्लो

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

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

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

इसके बाद के फ़्लो इस बात पर निर्भर करते हैं कि आपने इंप्लिसिट फ़्लो या ऑथराइज़ेशन कोड फ़्लो को लागू किया है या नहीं. इन फ़्लो के बारे में नीचे दिए गए सेक्शन में बताया गया है.

फ़्लो 1: उपयोगकर्ता इंप्लिसिट फ़्लो के साथ साइन इन करता है

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

फ़्लो 2: उपयोगकर्ता, ऑथराइज़ेशन कोड के फ़्लो के साथ साइन इन करता है

उपयोगकर्ता के लॉग इन करने और उसके क्रेडेंशियल की पुष्टि होने के बाद, आपकी सेवा एक ऑथराइज़ेशन कोड बनाती है और उसे Google को लौटा देती है.

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