अगर आपने Google Identity Services या अनुमति देने की सुविधा का इस्तेमाल पहले कभी नहीं किया है या आपको इसके बारे में ज़्यादा जानकारी नहीं है, तो खास जानकारी पढ़ें.
Google, JavaScript लाइब्रेरी उपलब्ध कराता है. इसमें ऑथराइज़ेशन की सुविधाएं शामिल होती हैं. इनकी मदद से, स्कोप मैनेज किए जा सकते हैं, उपयोगकर्ता की सहमति ली जा सकती है, और OAuth 2.0 के स्टैंडर्ड फ़्लो को आसानी से इस्तेमाल किया जा सकता है. उपयोगकर्ता के ब्राउज़र में चल रहा आपका वेब ऐप्लिकेशन, इस लाइब्रेरी का इस्तेमाल करता है. इससे OAuth 2.0 इंप्लिसिट फ़्लो को मैनेज किया जा सकता है. इसके अलावा, ऑथराइज़ेशन कोड फ़्लो शुरू किया जा सकता है, जो आपके बैकएंड प्लैटफ़ॉर्म पर पूरा होता है.
सिर्फ़ पुष्टि करने के लिए स्कोप
कई स्कोप का इस्तेमाल सिर्फ़ उपयोगकर्ता की पुष्टि करने के लिए किया जाता है: email, profile, और openid. अगर आपका ऐप्लिकेशन सिर्फ़ इन स्कोप का इस्तेमाल करता है, तो देखें कि क्या उपयोगकर्ता के साइन-अप और साइन-इन के लिए, JWT आईडी टोकन और 'Google से साइन इन करें' सुविधा आपकी ज़रूरतों को पूरा करती है. ज़्यादातर मामलों में, उपयोगकर्ता की पुष्टि करने के लिए यह सबसे आसान तरीका है.
मुख्य शब्द और कॉन्सेप्ट
इन गाइड में यह माना गया है कि आपको OAuth 2.0 के कॉन्सेप्ट और आईईटीएफ़ के स्टैंडर्ड के बारे में बुनियादी जानकारी है. जैसे, RFC6749. अनुमति देने से जुड़ी गाइड में इन शब्दों का इस्तेमाल किया गया है:
- ऐक्सेस टोकन, Google की ओर से जारी किया गया एक क्रेडेंशियल होता है. यह हर उपयोगकर्ता के लिए कम समय के लिए मान्य होता है. इसका इस्तेमाल, Google API को सुरक्षित तरीके से कॉल करने और उपयोगकर्ता डेटा को ऐक्सेस करने के लिए किया जाता है.
- अनुमति देने वाला कोड एक अस्थायी कोड होता है. इसे Google जारी करता है. इसका इस्तेमाल, उन उपयोगकर्ताओं की पहचान करने के लिए किया जाता है जो ब्राउज़र से अपने Google खाते में साइन इन करते हैं. आपका बैकएंड प्लैटफ़ॉर्म, इस कोड के बदले ऐक्सेस और रीफ़्रेश टोकन देता है.
- रीफ़्रेश टोकन, Google की ओर से जारी किया गया एक ऐसा क्रेडेंशियल है जो हर उपयोगकर्ता के लिए लंबे समय तक मान्य रहता है. यह आपके प्लैटफ़ॉर्म पर सुरक्षित तरीके से सेव किया जाता है. इसका इस्तेमाल, नया और मान्य ऐक्सेस टोकन पाने के लिए किया जा सकता है. ऐसा तब भी किया जा सकता है, जब उपयोगकर्ता मौजूद न हो.
- स्कोप, टोकन को उपयोगकर्ता डेटा की तय की गई और सीमित मात्रा तक सीमित करता है. ज़्यादा जानकारी के लिए, Google APIs के लिए OAuth 2.0 के स्कोप देखें.
- पॉप-अप मोड, अनुमति देने के लिए कोड के फ़्लो पर आधारित होता है. यह उपयोगकर्ता के ब्राउज़र में चल रहे JavaScript कॉलबैक पर काम करता है. Google, आपके कॉलबैक हैंडलर को शुरू करता है. इसके बाद, आपके प्लैटफ़ॉर्म को पुष्टि करने का कोड भेजने की ज़िम्मेदारी आपकी होती है. यह काम कैसे किया जाता है, यह आप पर निर्भर करता है.
- रीडायरेक्ट मोड, एचटीटीपी रीडायरेक्ट पर आधारित ऑथराइज़ेशन कोड फ़्लो है. उपयोगकर्ता-एजेंट को पहले Google पर रीडायरेक्ट किया जाता है. इसके बाद, Google से आपके प्लैटफ़ॉर्म के ऑथराइज़ेशन कोड एंडपॉइंट पर दूसरे रीडायरेक्ट में कोड शामिल होता है.
टोकन की लाइफ़टाइम, जारी करने वाली कंपनी के तौर पर Google सेट करता है. कई वजहों से, अवधि में अंतर हो सकता है.
OAuth 2.0 फ़्लो
इसमें दो फ़्लो, इंप्लिसिट और ऑथराइज़ेशन कोड के बारे में बताया गया है. दोनों ही, Google API के साथ इस्तेमाल करने के लिए सही ऐक्सेस टोकन देते हैं.
हमारा सुझाव है कि ऑथराइज़ेशन कोड फ़्लो का इस्तेमाल करें, क्योंकि इससे उपयोगकर्ता की सुरक्षा बेहतर होती है. इस फ़्लो में एक रीफ़्रेश टोकन भी मिलता है. इसका इस्तेमाल, उपयोगकर्ता की मौजूदगी के बिना ऐक्सेस टोकन पाने के लिए किया जा सकता है. इससे आपका प्लैटफ़ॉर्म, एसिंक्रोनस कार्रवाइयां कर सकता है. जैसे, आखिरी समय में शेड्यूल की गई किसी मीटिंग का एसएमएस रिमाइंडर भेजना. अनुमति देने का मॉडल चुनें लेख में, दोनों फ़्लो के बीच के अंतर के बारे में ज़्यादा जानकारी दी गई है.
Google Identity Services JavaScript लाइब्रेरी, OAuth 2.0 स्टैंडर्ड का पालन करती है, ताकि:
- इंप्लिसिट फ़्लो को मैनेज करें, ताकि आपका इन-ब्राउज़र वेब ऐप्लिकेशन, Google से तुरंत ऐक्सेस टोकन पा सके. Google API को कॉल करने के लिए, यह टोकन ज़रूरी है.
- उपयोगकर्ता के ब्राउज़र से, ऑथराइज़ेशन कोड फ़्लो शुरू करें.
सामान्य चरण
इंप्लिसिट और ऑथराइज़ेशन कोड फ़्लो, दोनों एक ही तरीके से शुरू होते हैं:
- आपका ऐप्लिकेशन, एक या उससे ज़्यादा स्कोप के ऐक्सेस का अनुरोध करता है.
- Google, उपयोगकर्ता को सहमति वाला डायलॉग दिखाता है. साथ ही, ज़रूरी होने पर उपयोगकर्ता को पहले उसके Google खाते में साइन इन कराता है.
- उपयोगकर्ता, अनुरोध किए गए हर स्कोप को अलग-अलग तौर पर स्वीकार करता है.
इसके बाद, हर फ़्लो अलग-अलग चरणों में पूरा होता है.
इंप्लिसिट फ़्लो का इस्तेमाल करते समय
- Google, कॉल बैक हैंडलर का इस्तेमाल करके आपके ऐप्लिकेशन को सहमति के नतीजे के बारे में सूचना देता है. साथ ही, मंज़ूरी वाले स्कोप के लिए ऐक्सेस टोकन वापस भेजता है.
ऑथराइज़ेशन कोड फ़्लो का इस्तेमाल करते समय
- Google, हर उपयोगकर्ता के लिए अनुमति देने वाला कोड भेजता है:
- रीडायरेक्ट मोड में, कोड को आपके प्लैटफ़ॉर्म के ऑथराइज़ेशन कोड एंडपॉइंट पर वापस भेज दिया जाता है.
- डायलॉग मोड में, कोड को आपके ब्राउज़र में मौजूद ऐप्लिकेशन के कॉलबैक हैंडलर को वापस भेज दिया जाता है. इसके लिए, लोगों को आपकी वेबसाइट छोड़ने की ज़रूरत नहीं होती.
- चौथे चरण: OAuth 2.0 सर्वर के जवाब को मैनेज करना से शुरू करके, आपका बैकएंड प्लैटफ़ॉर्म Google के साथ सर्वर-टू-सर्वर एक्सचेंज पूरा करता है. इससे हर उपयोगकर्ता के लिए रीफ़्रेश टोकन और ऐक्सेस टोकन, आपके प्लैटफ़ॉर्म को वापस मिल जाता है.
उपयोगकर्ता की सहमति
ऐक्सेस टोकन पाने से पहले, उपयोगकर्ताओं को आपके ऐप्लिकेशन को अनुरोध किए गए स्कोप ऐक्सेस करने की अनुमति देनी होगी. इसके लिए, Google दूसरे चरण के दौरान सहमति लेने के लिए एक डायलॉग दिखाता है. साथ ही, myaccount.google.com/permissions में नतीजे को रिकॉर्ड करता है.
आपके ऐप्लिकेशन का नाम, लोगो, निजता नीति, सेवा की शर्तें, और अनुरोध किए गए स्कोप, उपयोगकर्ता को दिखाए जाते हैं. साथ ही, उसे अनुरोध को स्वीकार या रद्द करने का विकल्प भी दिया जाता है.
पहली इमेज में, एक स्कोप के लिए सहमति लेने वाला डायलॉग दिखाया गया है. जब किसी एक स्कोप का अनुरोध किया जाता है, तो स्कोप को स्वीकार या अस्वीकार करने के लिए किसी भी चेकबॉक्स की ज़रूरत नहीं होती.

पहली इमेज: एक स्कोप के साथ उपयोगकर्ता की सहमति वाला डायलॉग.
दूसरी इमेज में, कई स्कोप के लिए सहमति लेने वाला डायलॉग दिखाया गया है. जब एक से ज़्यादा स्कोप का अनुरोध किया जाता है, तो अलग-अलग चेकबॉक्स ज़रूरी होते हैं. इससे उपयोगकर्ता को हर स्कोप को स्वीकार या अस्वीकार करने की अनुमति मिलती है.

दूसरी इमेज: उपयोगकर्ता की सहमति लेने वाला डायलॉग, जिसमें कई स्कोप शामिल हैं.
उपयोगकर्ता खाते
सहमति रिकॉर्ड करने और ऐक्सेस टोकन जारी करने के लिए, Google खाते की ज़रूरत होती है. इससे पहले, उपयोगकर्ताओं को Google खाते में साइन इन करके, Google से अपनी पुष्टि करानी होगी.
हालांकि, ऐसा करना ज़रूरी नहीं है, लेकिन हमारा सुझाव है कि 'Google से साइन इन करें' सुविधा का इस्तेमाल, आपके वेब ऐप्लिकेशन या बैकएंड प्लैटफ़ॉर्म पर साइन-अप और साइन-इन करने के लिए किया जाए. ऐसा करने से, उपयोगकर्ता को कम चरणों में काम पूरा करने में मदद मिलती है. इससे उपयोगकर्ता को होने वाली परेशानी कम होती है. साथ ही, आपके पास अपने प्लैटफ़ॉर्म पर अलग-अलग खातों के साथ ऐक्सेस टोकन जोड़ने का विकल्प होता है.
उदाहरण के लिए, 'Google से साइन इन करें' सुविधा का इस्तेमाल करने से, Google खाते का चालू सेशन सेट अप हो जाता है. इसलिए, अनुमति का अनुरोध करते समय, उपयोगकर्ता को Google खाते में साइन इन करने के लिए बाद में प्रॉम्प्ट करने की ज़रूरत नहीं पड़ती. अगर आपको उपयोगकर्ता नाम और पासवर्ड या पहचान की पुष्टि करने वाली अन्य कंपनियों के ज़रिए, अपने ऐप्लिकेशन में उपयोगकर्ताओं की पुष्टि करनी है, तो उन्हें सहमति देने के लिए पहले Google खाते में साइन इन करना होगा.
अनुमति देने की प्रोसेस शुरू करते समय लॉगिन हिंट जोड़ने से, Google को खाता चुनने का विकल्प दिखाने की ज़रूरत नहीं पड़ती. आम तौर पर, यह उपयोगकर्ता के Google खाते का ईमेल पता होता है. इससे उपयोगकर्ताओं का एक चरण बच जाता है. Sign In With Google से मिले आईडी टोकन क्रेडेंशियल में, उपयोगकर्ता का ईमेल पता होता है.
सिर्फ़ ब्राउज़र में चलने वाले वेब ऐप्लिकेशन, उपयोगकर्ता की पुष्टि करने के लिए सिर्फ़ Google पर भरोसा कर सकते हैं. साथ ही, वे उपयोगकर्ता खाता मैनेजमेंट सिस्टम लागू न करने का विकल्प चुन सकते हैं. इस स्थिति को इंप्लिसिट फ़्लो कहा जाता है. इसमें, उपयोगकर्ता खाते और सुरक्षित स्टोरेज को मैनेज करने के लिए, रीफ़्रेश टोकन को जोड़ने की ज़रूरत नहीं होती.
इसके अलावा, ऑथराइज़ेशन कोड फ़्लो के लिए उपयोगकर्ता खाता सिस्टम ज़रूरी है. हर उपयोगकर्ता के लिए रीफ़्रेश टोकन, आपके बैकएंड प्लैटफ़ॉर्म पर किसी व्यक्तिगत खाते से जुड़े होने चाहिए. साथ ही, उन्हें बाद में इस्तेमाल करने के लिए सेव किया जाना चाहिए. उपयोगकर्ता खाता सिस्टम को लागू करने, उसके साथ काम करने, और उसे मैनेज करने का तरीका आपके प्लैटफ़ॉर्म के हिसाब से अलग-अलग होता है. इसके बारे में ज़्यादा जानकारी नहीं दी गई है.
सहमति देखना और उसे वापस लेना
लोग अपने Google खाते की सेटिंग में जाकर, किसी भी समय सहमति देख सकते हैं या उसे वापस ले सकते हैं.
आपके पास यह विकल्प होता है कि आपका वेब ऐप्लिकेशन या प्लैटफ़ॉर्म, टोकन रद्द करने और उपयोगकर्ता की सहमति हटाने के लिए google.accounts.oauth2.revoke को कॉल करे. यह तब काम आता है, जब कोई उपयोगकर्ता आपके प्लैटफ़ॉर्म से अपना खाता मिटा देता है.
अनुमति देने के अन्य विकल्प
इसके अलावा, ब्राउज़र क्लाइंट-साइड वेब ऐप्लिकेशन के लिए OAuth 2.0 में बताए गए तरीके से, Google के OAuth 2.0 एंडपॉइंट को सीधे तौर पर कॉल करके, इंप्लिसिट फ़्लो का इस्तेमाल करके ऐक्सेस टोकन हासिल कर सकते हैं.
इसी तरह, ऑथराइज़ेशन कोड के फ़्लो के लिए, अपने तरीके लागू किए जा सकते हैं. साथ ही, वेब सर्वर ऐप्लिकेशन के लिए OAuth 2.0 का इस्तेमाल करना में बताए गए चरणों का पालन किया जा सकता है.
हमारा सुझाव है कि दोनों ही मामलों में, Google Identity Services लाइब्रेरी का इस्तेमाल करें. इससे आपको डेवलपमेंट में कम समय लगेगा और कम मेहनत करनी पड़ेगी. साथ ही, सुरक्षा से जुड़े जोखिमों को कम किया जा सकेगा. जैसे, OAuth 2.0 Security Best Current Practice में बताए गए जोखिम.