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