चेतावनी: यह डेटा Google उपयोगकर्ता डेटा नीति के तहत दिया जाता है. कृपया समीक्षा करें और नीति का पालन करें. ऐसा न करने पर, प्रोजेक्ट या खाता निलंबित हो सकता है.

उपयोगकर्ता की अनुमति कैसे मिलती है

अगर आप Google पहचान सेवाओं या अनुमति के बारे में नहीं जानते हैं या उनमें नई जानकारी जोड़ रहे हैं, तो खास जानकारी पढ़ें.

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

सिर्फ़ पुष्टि करने के दायरे

उपयोगकर्ता की पुष्टि करने के लिए, सिर्फ़ कई दायरों का इस्तेमाल किया जाता है: email, profile, और openid. अगर आपका ऐप्लिकेशन सिर्फ़ इन दायरों का इस्तेमाल करता है, तो मान लें कि कोई जेडब्ल्यूटी आईडी टोकन और उपयोगकर्ता के साइन अप और साइन इन करने के लिए Google से साइन इन करें आपकी ज़रूरतें पूरी करता है या नहीं. ज़्यादातर मामलों में, यह उपयोगकर्ता की पुष्टि करने के लिए सबसे आसान और आसान तरीका है.

मुख्य शब्द और सिद्धांत

ये गाइड यह मानते हैं कि आपको OAuth 2.0 सिद्धांतों और IETF मानकों जैसे आरएफ़सी6749 की बुनियादी समझ है. अनुमति देने वाली सभी गाइड में इन शब्दों का इस्तेमाल किया जाता है:

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

Google की ओर से टोकन की लाइफ़टाइम वैल्यू सेट की जाती है. अलग-अलग वजहों से हो सकता है कि सटीक अवधि अलग-अलग हो.

OAuth 2.0 फ़्लो

दो फ़्लो, इंप्लिसिट, और ऑथराइज़ेशन कोड पर चर्चा की गई है. दोनों वापस Google API के साथ इस्तेमाल करने के लिए सही टोकन चुनते हैं.

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

Google पहचान सेवाओं की JavaScript लाइब्रेरी, OAuth 2.0 के मानक के हिसाब से काम करती है:

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

सामान्य चरण

इंप्लिसिट और ऑथराइज़ेशन कोड फ़्लो, दोनों एक ही तरह से शुरू होते हैं:

  1. आपका ऐप्लिकेशन, एक या एक से ज़्यादा दायरों का ऐक्सेस पाने का अनुरोध करता है.
  2. Google, उपयोगकर्ता को सहमति वाला डायलॉग दिखाता है. अगर ज़रूरी हो, तो उपयोगकर्ता को पहले अपने Google खाते में साइन इन करने की ज़रूरत होती है.
  3. उपयोगकर्ता, अनुरोध किए गए हर दायरे को अलग-अलग मंज़ूरी देता है.

इसके बाद, हर फ़्लो अलग-अलग चरणों के साथ खत्म होता है.

इंप्लिसिट फ़्लो का इस्तेमाल करते समय

  • Google, सहमति से जुड़े नतीजे के बारे में आपके ऐप्लिकेशन को सूचना देने के लिए, कॉलबैक हैंडलर का इस्तेमाल करता है. साथ ही, यह अनुमति वाले किसी भी दायरे के लिए ऐक्सेस टोकन देता है.

पुष्टि करने वाले कोड का इस्तेमाल करते समय

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

अलग-अलग उपयोगकर्ताओं के लिए ऐक्सेस टोकन पाने से पहले, अनुरोध किए गए दायरों को ऐक्सेस करने के लिए, आपको अपने ऐप्लिकेशन की सहमति देनी होगी. ऐसा करने के लिए, Google ऊपर दिए गए दूसरे चरण में सहमति वाला डायलॉग दिखाता है और नतीजे को myaccount.google.com/permissions में रिकॉर्ड करता है.

आपके ऐप्लिकेशन का नाम, लोगो, निजता नीति, सेवा की शर्तें, और अनुरोध किए गए दायरे, उपयोगकर्ता को अनुरोध को स्वीकार या रद्द करने के विकल्प के साथ दिखाए जाते हैं.

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

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

पहला डायग्राम: एक ही दायरे में उपयोगकर्ता की सहमति वाला डायलॉग बॉक्स.

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

'रद्द करें' या 'जारी रखें' बटन और कई दायरों के साथ उपयोगकर्ता की सहमति वाला डायलॉग. हर दायरे में एक चेकबॉक्स चुनने का विकल्प होता है.

दूसरा डायग्राम: कई दायरों वाला उपयोगकर्ता का सहमति वाला डायलॉग बॉक्स.

उपयोगकर्ता खाते

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

हालांकि, यह ज़रूरी नहीं है, लेकिन हमारा सुझाव है कि आप 'Google से साइन इन करें' सुविधा का इस्तेमाल, अपने वेब ऐप्लिकेशन या बैकएंड प्लैटफ़ॉर्म में साइन अप और साइन इन करने के लिए करें. ऐसा करने से, पेज पर ज़रूरी समस्याएं कम हो जाती हैं और उपयोगकर्ता को परेशानी होती है. साथ ही, आप अपने प्लैटफ़ॉर्म पर अलग-अलग खातों से ऐक्सेस टोकन को आसानी से जोड़ पाते हैं.

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

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

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

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

उपयोगकर्ता किसी भी समय अपनी Google खाता सेटिंग में जाकर, सहमति देख सकते हैं या उसे निरस्त कर सकते हैं.

इसके अलावा, आपका वेब ऐप्लिकेशन या प्लैटफ़ॉर्म, टोकन google.accounts.oauth2.revoke को कॉल करके, उपयोगकर्ता की सहमति तब हटा सकता है, जब वह अपने प्लैटफ़ॉर्म से अपना खाता मिटा देता है.

अनुमति देने के अन्य विकल्प

इसके अलावा, ब्राउज़र सीधे Google के OAuth 2.0 एंडपॉइंट पर कॉल करके इंप्लिसिट फ़्लो का इस्तेमाल करके, ऐक्सेस टोकन पा सकते हैं. इसके बारे में, क्लाइंट-साइड वेब ऐप्लिकेशन के लिए, OAuth 2.0 में बताया गया है.

इसी तरह, ऑथराइज़ेशन कोड फ़्लो के लिए, आप खुद के तरीके लागू कर सकते हैं और वेब सर्वर ऐप्लिकेशन के लिए OAuth 2.0 का इस्तेमाल करना में बताए गए तरीके का पालन कर सकते हैं.

दोनों ही मामलों में, हम आपको Google डेवलपमेंट सर्विस लाइब्रेरी का इस्तेमाल करने का सुझाव देते हैं. इससे, आपको अपने समय और मेहनत को कम करने और OAuth 2.0 सुरक्षा से जुड़े मौजूदा सबसे सही तरीके में बताए गए सुरक्षा जोखिमों को कम करने में मदद मिलती है.