इस दस्तावेज़ में, ऐक्सेस करने के लिए OAuth 2.0 की मदद से पुष्टि करने की सुविधा लागू करने का तरीका बताया गया है किसी JavaScript वेब ऐप्लिकेशन से YouTube Analytics API या YouTube Reporting API. OAuth 2.0 उपयोगकर्ताओं को किसी ऐप्लिकेशन के साथ कोई खास डेटा शेयर कर सकते हैं. हालांकि, इस दौरान वे उनके उपयोगकर्ता नाम, पासवर्ड वगैरह को सुरक्षित रख सकते हैं निजी जानकारी. उदाहरण के लिए, कोई ऐप्लिकेशन अनुमति पाने के लिए OAuth 2.0 का इस्तेमाल कर सकता है का इस्तेमाल करें.
इस OAuth 2.0 फ़्लो को इंप्लिसिट ग्रांट फ़्लो कहा जाता है. इसे इस तरह से डिज़ाइन किया गया है ऐसे ऐप्लिकेशन जो एपीआई को सिर्फ़ तब ऐक्सेस करते हैं, जब उपयोगकर्ता ऐप्लिकेशन में मौजूद होता है. ये ऐप्लिकेशन गोपनीय जानकारी को संग्रहित नहीं कर सकते.
इस फ़्लो में, आपका ऐप्लिकेशन एक Google यूआरएल खोलता है, जो आपके ऐप्लिकेशन की पहचान करने के लिए क्वेरी पैरामीटर का इस्तेमाल करता है साथ ही, ऐप्लिकेशन के लिए ज़रूरी एपीआई ऐक्सेस का टाइप भी शामिल है. यूआरएल को मौजूदा ब्राउज़र में खोला जा सकता है विंडो या पॉप-अप हो सकता है. उपयोगकर्ता, Google से अपनी पहचान की पुष्टि कर सकता है और मांगी गई अनुमतियां दे सकता है. इसके बाद, Google उपयोगकर्ता को आपके ऐप्लिकेशन पर रीडायरेक्ट कर देता है. रीडायरेक्ट में एक ऐक्सेस टोकन होता है, जो आपका ऐप्लिकेशन पुष्टि करता है और फिर एपीआई अनुरोध करने के लिए इसका इस्तेमाल करता है.
Google API क्लाइंट लाइब्रेरी और Google Identity सेवाएं
अगर JavaScript के लिए Google API की क्लाइंट लाइब्रेरी का इस्तेमाल किया जाता है Google को अधिकृत कॉल करने के लिए, आपको OAuth 2.0 फ़्लो को मैनेज करने के लिए, Google Identity Services की JavaScript लाइब्रेरी का इस्तेमाल करता है. कृपया Google पर जाएं आइडेंटिटी सर्विस टोकन मॉडल, जो कि OAuth 2.0 इंप्लिसिट ग्रांट फ़्लो के हिसाब से तय होता है.
ज़रूरी शर्तें
अपने प्रोजेक्ट के लिए एपीआई चालू करना
अगर कोई ऐप्लिकेशन, Google API को कॉल करता है, तो उसे API Console.
अपने प्रोजेक्ट के लिए एपीआई चालू करने के लिए:
- Open the API Library Google API Console.
- If prompted, select a project, or create a new one.
- YouTube Analytics API और YouTube Reporting API को ढूंढने और चालू करने के लिए, लाइब्रेरी पेज का इस्तेमाल करें. YouTube Analytics का डेटा हासिल करने वाले कई ऐप्लिकेशन, YouTube Data API की मदद से भी काम करते हैं. ऐसे कोई दूसरे एपीआई ढूंढें जिनका इस्तेमाल आपका ऐप्लिकेशन करेगा और उन्हें भी चालू करें.
अनुमति देने वाले क्रेडेंशियल बनाएं
Google API को ऐक्सेस करने के लिए OAuth 2.0 का इस्तेमाल करने वाले किसी भी ऐप्लिकेशन के पास, अनुमति देने वाले क्रेडेंशियल होने चाहिए जो Google के OAuth 2.0 सर्वर पर ऐप्लिकेशन की पहचान करती है. यहां दिए गए चरण, अपने प्रोजेक्ट के लिए क्रेडेंशियल बनाएं. इसके बाद, आपके ऐप्लिकेशन एपीआई ऐक्सेस करने के लिए क्रेडेंशियल का इस्तेमाल कर सकते हैं जिसे आपने उस प्रोजेक्ट के लिए चालू किया है.
- Go to the Credentials page.
- क्रेडेंशियल बनाएं > OAuth क्लाइंट आईडी.
- वेब ऐप्लिकेशन ऐप्लिकेशन का प्रकार चुनें.
- फ़ॉर्म भरें. ऐसे ऐप्लिकेशन जो अधिकृत Google API अनुरोध करने के लिए JavaScript का इस्तेमाल करते हैं अनुमति वाले JavaScript के ऑरिजिन होने चाहिए. ऑरिजिन, इनसे डोमेन की पहचान करते हैं आपका ऐप्लिकेशन OAuth 2.0 सर्वर को अनुरोध भेज सकता है. इन ऑरिजिन को पुष्टि करने के लिए Google के नियमों का पालन करें.
ऐक्सेस के दायरों की पहचान करना
स्कोप की वजह से आपका ऐप्लिकेशन, सिर्फ़ उन संसाधनों के ऐक्सेस का अनुरोध कर सकता है जिनकी उसे ज़रूरत है. साथ ही, ताकि उपयोगकर्ता आपके ऐप्लिकेशन को दिए जाने वाले ऐक्सेस की मात्रा को कंट्रोल कर सकें. इसलिए, यहां हो सकता है कि अनुरोध किए गए दायरों की संख्या और उपयोगकर्ता की सहमति लेना न भूलें.
OAuth 2.0 ऑथराइज़ेशन लागू करने से पहले, हमारा सुझाव है कि आप स्कोप की पहचान कर लें यह जानकारी ऐक्सेस करने के लिए, आपके ऐप्लिकेशन को अनुमति की ज़रूरत होगी.
YouTube Analytics API इन दायरों का इस्तेमाल करता है:
कार्यक्षेत्र | |
---|---|
https://www.googleapis.com/auth/youtube | अपना YouTube खाता प्रबंधित करें |
https://www.googleapis.com/auth/youtube.readonly | अपना YouTube खाता देखें |
https://www.googleapis.com/auth/youtubepartner | YouTube पर अपनी संपत्ति और संबंधित सामग्री देखें और प्रबंधित करें |
https://www.googleapis.com/auth/yt-analytics-monetary.readonly | अपनी YouTube सामग्री के लिए मौद्रिक और गैर-मौद्रिक YouTube Analytics रिपोर्ट देखें |
https://www.googleapis.com/auth/yt-analytics.readonly | अपनी YouTube सामग्री के लिए YouTube Analytics रिपोर्ट देखें |
YouTube Reporting API, इन दायरों का इस्तेमाल करता है:
कार्यक्षेत्र | |
---|---|
https://www.googleapis.com/auth/yt-analytics-monetary.readonly | अपनी YouTube सामग्री के लिए मौद्रिक और गैर-मौद्रिक YouTube Analytics रिपोर्ट देखें |
https://www.googleapis.com/auth/yt-analytics.readonly | अपनी YouTube सामग्री के लिए YouTube Analytics रिपोर्ट देखें |
OAuth 2.0 API के दायरे दस्तावेज़ में, उन दायरों की सूची जिनका इस्तेमाल Google API को ऐक्सेस करने के लिए किया जा सकता है.
OAuth 2.0 ऐक्सेस टोकन पाना
नीचे दिए गए चरण दिखाते हैं कि आपका ऐप्लिकेशन, एपीआई का इस्तेमाल करने के लिए Google के OAuth 2.0 सर्वर के साथ कैसे इंटरैक्ट करता है उपयोगकर्ता की ओर से एपीआई अनुरोध करने के लिए, उपयोगकर्ता की सहमति. आपके ऐप्लिकेशन में वह होना चाहिए उपयोगकर्ता की अनुमति की ज़रूरत होती है.
पहला चरण: Google के OAuth 2.0 सर्वर पर रीडायरेक्ट करना
किसी उपयोगकर्ता के डेटा को ऐक्सेस करने की अनुमति का अनुरोध करने के लिए, उपयोगकर्ता को Google के OAuth 2.0 पर रीडायरेक्ट करें सर्वर.
OAuth 2.0 एंडपॉइंट
Google के OAuth 2.0 एंडपॉइंट से ऐक्सेस का अनुरोध करने के लिए, यहां एक यूआरएल जनरेट करें
https://accounts.google.com/o/oauth2/v2/auth
. इस एंडपॉइंट को एचटीटीपीएस से ऐक्सेस किया जा सकता है;
सामान्य एचटीटीपी कनेक्शन अस्वीकार कर दिए गए हैं.
Google ऑथराइज़ेशन सर्वर, वेब के लिए इन क्वेरी स्ट्रिंग पैरामीटर के साथ काम करता है सर्वर ऐप्लिकेशन:
पैरामीटर | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
client_id |
ज़रूरी है
आपके ऐप्लिकेशन का क्लाइंट आईडी. आपको यह वैल्यू यहां दिखेगी API Consoleअभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है Credentials page. |
||||||||||||||||||
redirect_uri |
ज़रूरी है
यह तय करता है कि उपयोगकर्ता के पूरा करने के बाद एपीआई सर्वर, उपयोगकर्ता को कहां रीडायरेक्ट करता है
ऑथराइज़ेशन फ़्लो. वैल्यू, इनमें से किसी एक आधिकारिक रीडायरेक्ट यूआरआई से पूरी तरह मैच होनी चाहिए:
OAuth 2.0 क्लाइंट, जिसे आपने अपने क्लाइंट के
API Consoleअभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
Credentials page. अगर यह मान किसी
दिए गए ध्यान दें कि |
||||||||||||||||||
response_type |
ज़रूरी है
JavaScript ऐप्लिकेशन को पैरामीटर का मान |
||||||||||||||||||
scope |
ज़रूरी है
ऐप्लिकेशन स्पेस-डीलिमिटेड दायरों की सूची, जो उन संसाधनों की पहचान करती है जिन्हें आपका ऐप्लिकेशन, का ऐक्सेस दिया गया है. ये वैल्यू उस स्क्रीन के बारे में बताती हैं जिसे Google, उपयोगकर्ता. स्कोप की वजह से आपका ऐप्लिकेशन सिर्फ़ उन संसाधनों का ऐक्सेस मांग सकता है जिनकी उसे ज़रूरत है साथ ही, उपयोगकर्ता इस बात को भी कंट्रोल कर सकते हैं कि वे का इस्तेमाल करें. इसलिए, अनुरोध किए गए स्कोप की संख्या के बीच एक उलटा संबंध होता है उपयोगकर्ता की सहमति लेने की संभावना को भी बढ़ा देता है. YouTube Analytics API इन दायरों का इस्तेमाल करता है:
YouTube Reporting API, इन दायरों का इस्तेमाल करता है:
OAuth 2.0 API के दायरे दस्तावेज़, उन दायरों की पूरी सूची जिनका इस्तेमाल Google API को ऐक्सेस करने के लिए किया जा सकता है. हमारा सुझाव है कि आपका ऐप्लिकेशन, अनुमति के दायरों के ऐक्सेस का अनुरोध करे मदद मिलती है. कॉन्टेक्स्ट के हिसाब से उपयोगकर्ता के डेटा को ऐक्सेस करने का अनुरोध करके, ज़्यादा ऐक्सेस देकर पुष्टि करना, आप लोगों की मदद करने के लिए उन्हें यह समझने में मदद मिलती है कि आपके ऐप्लिकेशन को जिस ऐक्सेस की ज़रूरत है वह क्यों मांग रहा है. |
||||||||||||||||||
state |
सुझाया गया
ऐसा कोई भी स्ट्रिंग मान तय करता है, जिसका इस्तेमाल आपका ऐप्लिकेशन आपके
की अनुमति का अनुरोध और अनुमति देने वाले सर्वर का जवाब.
सर्वर वही वैल्यू दिखाता है जो आपने इस पैरामीटर का इस्तेमाल कई कामों के लिए किया जा सकता है, जैसे कि उपयोगकर्ता को
आपके आवेदन में सही संसाधन, नॉन्स भेजना, और क्रॉस-साइट अनुरोध को कम करना
जालसाज़ी. आपके |
||||||||||||||||||
include_granted_scopes |
ज़रूरी नहीं
ऐप्लिकेशन को अतिरिक्त ऐक्सेस का अनुरोध करने के लिए वृद्धिशील प्राधिकरण का उपयोग करने में सक्षम बनाता है
शर्तों को पूरा करते हैं. अगर आप इस पैरामीटर का मान |
||||||||||||||||||
enable_granular_consent |
ज़रूरी नहीं
डिफ़ॉल्ट तौर पर, यह जब Google किसी ऐप्लिकेशन के लिए विस्तृत अनुमतियां चालू करता है, तो यह पैरामीटर करते हैं. |
||||||||||||||||||
login_hint |
ज़रूरी नहीं
अगर आपके ऐप्लिकेशन को पता है कि कौनसा उपयोगकर्ता प्रमाणित करने की कोशिश कर रहा है, तो वह इस पैरामीटर का इस्तेमाल कर सकता है का इस्तेमाल करें. सर्वर, इस प्रॉम्प्ट के लिए साइन-इन फ़ॉर्म में ईमेल फ़ील्ड को पहले से भरकर या सही मल्टी-लॉगिन सेशन चुनना होगा. पैरामीटर वैल्यू को किसी ईमेल पते या |
||||||||||||||||||
prompt |
ज़रूरी नहीं
उपयोगकर्ता को दिखाने के लिए प्रॉम्प्ट की स्पेस-डीलिमिटेड, केस-सेंसिटिव (बड़े और छोटे अक्षरों में अंतर) सूची. अगर आपको इस पैरामीटर को सेट करने पर, उपयोगकर्ता को आपके प्रोजेक्ट में सिर्फ़ पहली बार प्रॉम्प्ट दिया जाएगा इसे ऐक्सेस करने का अनुरोध करता है. देखें ज़्यादा जानकारी के लिए, फिर से सहमति का अनुरोध किया जा रहा है. आपको ये वैल्यू दिख सकती हैं:
|
सैंपल के तौर पर, Google के ऑथराइज़ेशन सर्वर पर रीडायरेक्ट करने की सुविधा
नीचे दिया गया सैंपल यूआरएल ऑफ़लाइन ऐक्सेस का अनुरोध करता है
(access_type=offline
) उस स्कोप के लिए जो फिर से पाने के ऐक्सेस की अनुमति देता है
उपयोगकर्ता की YouTube Analytics रिपोर्ट. यह इन कामों के लिए इंक्रीमेंटल ऑथराइज़ेशन का इस्तेमाल करता है
पक्का करें कि नए ऐक्सेस टोकन में उपयोगकर्ता के हर दायरे को शामिल किया गया हो
को पहले ऐप्लिकेशन का ऐक्सेस दिया था. URL
redirect_uri
, response_type
, और वैल्यू देना ज़रूरी है
client_id
पैरामीटर और state
के लिए
पैरामीटर. यूआरएल में लाइन ब्रेक और स्पेस शामिल हों, ताकि उसे आसानी से पढ़ा जा सके.
https://accounts.google.com/o/oauth2/v2/auth?
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyt-analytics.readonly&
include_granted_scopes=true&
state=state_parameter_passthrough_value&
redirect_uri=http%3A%2F%2Flocalhost%2Foauth2callback&
response_type=token&
client_id=client_id
अनुरोध यूआरएल बनाने के बाद, उपयोगकर्ता को उस पर रीडायरेक्ट करें.
JavaScript सैंपल कोड
नीचे दिया गया JavaScript स्निपेट यह बताता है कि पुष्टि करने की प्रोसेस कैसे शुरू की जाती है JavaScript के लिए Google API क्लाइंट लाइब्रेरी का इस्तेमाल किए बिना JavaScript. इस OAuth से 2.0 एंडपॉइंट क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) के साथ काम नहीं करता, इसलिए स्निपेट एक फ़ॉर्म, जो उस एंडपॉइंट पर अनुरोध खोलता है.
/* * Create form to request access token from Google's OAuth 2.0 server. */ function oauthSignIn() { // Google's OAuth 2.0 endpoint for requesting an access token var oauth2Endpoint = 'https://accounts.google.com/o/oauth2/v2/auth'; // Create <form> element to submit parameters to OAuth 2.0 endpoint. var form = document.createElement('form'); form.setAttribute('method', 'GET'); // Send as a GET request. form.setAttribute('action', oauth2Endpoint); // Parameters to pass to OAuth 2.0 endpoint. var params = {'client_id': 'YOUR_CLIENT_ID', 'redirect_uri': 'YOUR_REDIRECT_URI', 'response_type': 'token', 'scope': 'https://www.googleapis.com/auth/yt-analytics.readonly', 'include_granted_scopes': 'true', 'state': 'pass-through value'}; // Add form parameters as hidden input values. for (var p in params) { var input = document.createElement('input'); input.setAttribute('type', 'hidden'); input.setAttribute('name', p); input.setAttribute('value', params[p]); form.appendChild(input); } // Add form to page and submit it to open the OAuth 2.0 endpoint. document.body.appendChild(form); form.submit(); }
दूसरा चरण: Google, उपयोगकर्ता से सहमति लेने का अनुरोध करता है
इस चरण में, उपयोगकर्ता यह तय करता है कि आपके ऐप्लिकेशन को अनुरोध किया गया ऐक्सेस देना है या नहीं. इस पर इस स्टेज में, Google एक सहमति विंडो दिखाता है. इसमें आपके ऐप्लिकेशन का नाम और Google API दिखता है ऐसी सेवाएं जिन्हें वह उपयोगकर्ता के ऑथराइज़ेशन क्रेडेंशियल के साथ ऐक्सेस करने की अनुमति का अनुरोध कर रहा है और दिए जाने वाले ऐक्सेस के दायरों की खास जानकारी. कॉन्टेंट बनाने इसके बाद उपयोगकर्ता, आपके ऐप्लिकेशन के अनुरोध किए गए एक या उससे ज़्यादा दायरों का ऐक्सेस देने की सहमति दे सकता है या अनुरोध अस्वीकार कर दो.
आपके आवेदन को इस चरण में कुछ भी करने की आवश्यकता नहीं है क्योंकि वह से प्रतिक्रिया की प्रतीक्षा करता है Google के OAuth 2.0 सर्वर से पता चलता है कि कोई ऐक्सेस दिया गया था या नहीं. उस जवाब के बारे में का पालन करने के लिए नीचे दिया गया तरीका अपनाएं.
गड़बड़ियां
Google के OAuth 2.0 ऑथराइज़ेशन एंडपॉइंट पर किए जाने वाले अनुरोधों पर, उपयोगकर्ताओं को गड़बड़ी के मैसेज दिख सकते हैं करने के लिए कहा जाता है. सामान्य गड़बड़ियों के कोड और सुझाए गए समाधान नीचे दिए गए हैं.
admin_policy_enforced
Google खाता, नीचे बताई गई नीतियों की वजह से एक या एक से ज़्यादा दायरों को अनुमति नहीं दे सकता अपने Google Workspace एडमिन से संपर्क करना होगा. Google Workspace एडमिन का सहायता लेख पढ़ें यह कंट्रोल करना कि किस तीसरे पक्ष और इंटरनल ऐप्लिकेशन, Google Workspace का डेटा ऐक्सेस करते हैं ताकि इस बारे में ज़्यादा जानकारी मिल सके कि कोई एडमिन, सभी दायरों या संवेदनशील जानकारी के ऐक्सेस पर कैसे पाबंदी लगा सकता है और आपके OAuth क्लाइंट आईडी का ऐक्सेस साफ़ तौर पर मिलने तक, दायरों को सीमित किया जा सकता है.
disallowed_useragent
ऑथराइज़ेशन एंडपॉइंट किसी एम्बेड किए गए उपयोगकर्ता-एजेंट के अंदर दिखाया जाता है, जिसे Google के पास अनुमति नहीं होती OAuth 2.0 की नीतियां.
Android
अनुमति देने के अनुरोध खोलते समय, Android डेवलपर को गड़बड़ी का यह मैसेज दिख सकता है
android.webkit.WebView
.
डेवलपर को इसके बजाय, इन Android लाइब्रेरी का इस्तेमाल करना चाहिए
Android के लिए Google साइन-इन या Notebook Foundation के लिए
Android के लिए AppAuth.
वेब डेवलपर को यह गड़बड़ी तब दिख सकती है, जब कोई Android ऐप्लिकेशन एम्बेड किया गया उपयोगकर्ता-एजेंट और उपयोगकर्ता, इससे Google के OAuth 2.0 ऑथराइज़ेशन एंडपॉइंट पर नेविगेट करता है आपकी साइट. डेवलपर को सामान्य लिंक को ऑपरेटिंग सिस्टम, जिसमें दोनों शामिल हैं Android ऐप्लिकेशन के लिंक हैंडलर या डिफ़ॉल्ट ब्राउज़र ऐप्लिकेशन का इस्तेमाल करें. कॉन्टेंट बनाने Android के कस्टम टैब लाइब्रेरी का भी इस्तेमाल किया जा सकता है.
iOS
अनुमति के अनुरोध खोलते समय, iOS और macOS डेवलपर को यह गड़बड़ी दिख सकती है
WKWebView
.
डेवलपर को इसके बजाय iOS लाइब्रेरी का इस्तेमाल करना चाहिए, जैसे कि
iOS के लिए Google साइन-इन या Notebook Foundation की सेवा
iOS के लिए AppAuth.
वेब डेवलपर को यह गड़बड़ी तब दिख सकती है, जब iOS या macOS ऐप्लिकेशन,
एक एम्बेड किया गया उपयोगकर्ता-एजेंट और उपयोगकर्ता, इससे Google के OAuth 2.0 ऑथराइज़ेशन एंडपॉइंट पर नेविगेट करता है
आपकी साइट. डेवलपर को सामान्य लिंक को
ऑपरेटिंग सिस्टम, जिसमें दोनों शामिल हैं
यूनिवर्सल लिंक
हैंडलर या डिफ़ॉल्ट ब्राउज़र ऐप्लिकेशन का इस्तेमाल करें. कॉन्टेंट बनाने
SFSafariViewController
लाइब्रेरी का भी इस्तेमाल किया जा सकता है.
org_internal
अनुरोध में दिया गया OAuth क्लाइंट आईडी, एक ऐसे प्रोजेक्ट का हिस्सा है जो Google खातों को तय Google Cloud संगठन. इस कॉन्फ़िगरेशन विकल्प के बारे में ज़्यादा जानकारी के लिए, यहां देखें: उपयोगकर्ता का टाइप 'ऐसी स्क्रीन जहां OAuth के लिए सहमति दी जाती है' सेट अप करने का सहायता लेख पढ़ें.
invalid_client
जिस ऑरिजिन से अनुरोध किया गया है उसकी अनुमति इस क्लाइंट के पास नहीं है. यहां जाएं:
origin_mismatch
.
invalid_grant
इंक्रीमेंटल ऑथराइज़ेशन का इस्तेमाल करते समय, हो सकता है कि टोकन की समयसीमा खत्म हो गई हो या अमान्य कर दिया गया है. उपयोगकर्ता की फिर से पुष्टि करें और नए टोकन पाने के लिए, उपयोगकर्ता की सहमति मांगें. अगर आपको जारी रखना है, तो इस गड़बड़ी को देखने के लिए, पक्का करें कि आपका ऐप्लिकेशन ठीक से कॉन्फ़िगर किया गया है और आप इसमें सही टोकन और पैरामीटर का इस्तेमाल करें. ऐसा न करने पर, उपयोगकर्ता खाते में आपकी साइट को मिटा दिया गया है या उसे बंद कर दिया गया है.
origin_mismatch
अनुमति पाने के अनुरोध की शुरुआत करने वाली JavaScript की स्कीम, डोमेन, और/या पोर्ट OAuth क्लाइंट आईडी के लिए रजिस्टर किए गए अनुमति वाले JavaScript ऑरिजिन यूआरआई से मैच करता है. समीक्षा की अनुमति दी गई Google API Consoleमें JavaScript ऑरिजिन Credentials page.
redirect_uri_mismatch
अनुमति देने के अनुरोध में पास किया गया redirect_uri
, उस आधिकारिक खाते से मेल नहीं खाता जिसे अनुमति मिली है
OAuth क्लाइंट आईडी के लिए रीडायरेक्ट यूआरआई. यहां दिए गए आधिकारिक रीडायरेक्ट यूआरआई की समीक्षा करें:
Google API Console पर बताया गया हैCredentials page.
अनुमति पाने के अनुरोध की शुरुआत करने वाली JavaScript की स्कीम, डोमेन, और/या पोर्ट OAuth क्लाइंट आईडी के लिए रजिस्टर किए गए अनुमति वाले JavaScript ऑरिजिन यूआरआई से मैच करता है. जानकारी देखें इसमें अनुमति वाले JavaScript ऑरिजिन, Google API Console पर बताया गया हैCredentials page.
redirect_uri
पैरामीटर ऐसा OAuth आउट-ऑफ़-बैंड (OOB) फ़्लो देख सकता है जिसमें
अब काम नहीं करता. देखें
डेटा को दूसरी जगह भेजने से जुड़ी गाइड अपडेट करें.
इंटिग्रेशन.
invalid_request
आपके किए गए अनुरोध में कोई गड़बड़ी थी. ऐसा कई वजहों से हो सकता है:
- अनुरोध सही तरीके से फ़ॉर्मैट नहीं किया गया था
- अनुरोध में ज़रूरी पैरामीटर मौजूद नहीं थे
- अनुरोध, पुष्टि करने के लिए किसी ऐसे तरीके का इस्तेमाल करता है जो Google पर काम नहीं करता. अपने OAuth की पुष्टि करें इंटिग्रेशन के लिए, इंटिग्रेशन के सुझाए गए तरीके का इस्तेमाल किया जाता है
तीसरा चरण: OAuth 2.0 सर्वर रिस्पॉन्स मैनेज करना
OAuth 2.0 एंडपॉइंट
OAuth 2.0 सर्वर, आपकेredirect_uri
ऐक्सेस टोकन के लिए अनुरोध किया गया है.
अगर उपयोगकर्ता अनुरोध को मंज़ूरी देता है, तो रिस्पॉन्स में ऐक्सेस टोकन शामिल होता है. अगर उपयोगकर्ता अनुरोध स्वीकार नहीं करता है, तो जवाब में एक गड़बड़ी का मैसेज है. ऐक्सेस टोकन या रीडायरेक्ट यूआरआई के हैश फ़्रैगमेंट पर गड़बड़ी का मैसेज दिखाता है, जैसा कि नीचे दिखाया गया है:
ऐक्सेस टोकन रिस्पॉन्स:
https://oauth2.example.com/callback#access_token=4/P7q7W91&token_type=Bearer&expires_in=3600
access_token
पैरामीटर के अलावा, फ़्रैगमेंट स्ट्रिंग भी इसमेंtoken_type
पैरामीटर होता है, जो हमेशाBearer
औरexpires_in
पैरामीटर से पता चलता है कि टोकन का लाइफ़टाइम, सेकंड में. अगरstate
पैरामीटर दिया गया था तो इसकी वैल्यू भी ऐक्सेस टोकन के अनुरोध में शामिल होती है.- गड़बड़ी का जवाब:
https://oauth2.example.com/callback#error=access_denied
OAuth 2.0 सर्वर के रिस्पॉन्स का सैंपल
नीचे दिए गए सैंपल यूआरएल पर क्लिक करके, इस फ़्लो की जांच की जा सकती है. यह यूआरएल अपनी Google डिस्क में मौजूद फ़ाइलों का मेटाडेटा देखने के लिए रीड-ओनली ऐक्सेस:
https://accounts.google.com/o/oauth2/v2/auth? scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyt-analytics.readonly& include_granted_scopes=true& state=state_parameter_passthrough_value& redirect_uri=http%3A%2F%2Flocalhost%2Foauth2callback& response_type=token& client_id=client_id
OAuth 2.0 फ़्लो पूरा करने के बाद, आपको
http://localhost/oauth2callback
. वह यूआरएल एक
404 NOT FOUND
गड़बड़ी जब तक आपकी लोकल मशीन यहां पर फ़ाइल नहीं चला देती
वह पता. अगले चरण में,
यूआरआई, जब उपयोगकर्ता को आपके ऐप्लिकेशन पर वापस रीडायरेक्ट किया जाता है.
Calling Google API
OAuth 2.0 एंडपॉइंट
जब आपके ऐप्लिकेशन को ऐक्सेस टोकन मिल जाता है, तब आपके पास इस टोकन का इस्तेमाल करके, Google को कॉल करने का विकल्प होता है
किसी दिए गए प्रतिनिधि की ओर से API
उपयोगकर्ता खाते के लिए. ऐसा करने के लिए, शामिल करें
एपीआई को किए गए अनुरोध में access_token
क्वेरी शामिल करके, ऐक्सेस टोकन
पैरामीटर या Authorization
एचटीटीपी हेडर Bearer
वैल्यू. जब मुमकिन हो,
एचटीटीपी हेडर को प्राथमिकता दी जाती है, क्योंकि सर्वर लॉग में क्वेरी स्ट्रिंग अक्सर दिखती हैं. ज़्यादातर
मामलों में आप Google API पर अपने कॉल सेट अप करने के लिए क्लाइंट लाइब्रेरी का उपयोग कर सकते हैं (उदाहरण के लिए,
YouTube Analytics API को कॉल करना).
ध्यान दें कि YouTube Analytics API, सेवा खाते के साथ काम नहीं करता फ़्लो. YouTube Reporting API, सिर्फ़ इनके लिए सेवा खातों के साथ काम करता है YouTube पर मौजूद कॉन्टेंट के ऐसे मालिक जो कई YouTube चैनलों के मालिक हैं और उन्हें मैनेज करते हैं, जैसे रिकॉर्ड लेबल और फ़िल्म स्टूडियो के तौर पर.
आप सभी Google API को आज़मा सकते हैं और यहां पर उनके दायरे देख सकते हैं OAuth 2.0 Playground.
एचटीटीपी जीईटी के उदाहरण
एक कॉल
reports.query
Authorization: Bearer
एचटीटीपी का इस्तेमाल करके, एंडपॉइंट (YouTube Analytics API) का इस्तेमाल करना
हेडर ऐसा दिख सकता है. ध्यान दें कि आपको अपना ऐक्सेस टोकन बताना होगा:
GET /youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date=2016-05-01&end-date=2016-06-30&metrics=views HTTP/1.1 Host: www.googleapis.com Authorization: Bearer access_token
यहां access_token
का इस्तेमाल करके, पुष्टि किए गए उपयोगकर्ता के लिए उसी एपीआई को कॉल किया गया है
क्वेरी स्ट्रिंग पैरामीटर:
GET https://www.googleapis.com/youtube/analytics/v1/reports?access_token=access_token&ids=channel%3D%3DMINE&start-date=2016-05-01&end-date=2016-06-30&metrics=views
curl
के उदाहरण
curl
कमांड-लाइन ऐप्लिकेशन का इस्तेमाल करके, इन कमांड की जांच की जा सकती है. यह रही
उदाहरण के लिए, जो एचटीटीपी हेडर विकल्प का इस्तेमाल करता है (प्राथमिकता दी जाती है):
curl -H "Authorization: Bearer access_token" https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date=2016-05-01&end-date=2016-06-30&metrics=views
इसके अलावा, क्वेरी स्ट्रिंग पैरामीटर विकल्प:
curl https://www.googleapis.com/youtube/analytics/v1/reports?access_token=access_token&ids=channel%3D%3DMINE&start-date=2016-05-01&end-date=2016-06-30&metrics=views
JavaScript सैंपल कोड
नीचे दिया गया कोड स्निपेट, सीओआरएस (क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग) का इस्तेमाल करके किसी Google API को अनुरोध भेज सकते हैं. इस उदाहरण में, JavaScript के लिए Google API क्लाइंट लाइब्रेरी का इस्तेमाल नहीं किया गया है. हालांकि, अगर क्लाइंट लाइब्रेरी का इस्तेमाल नहीं किया जा रहा है, तो लाइब्रेरी के दस्तावेज़ में दी गई सीओआरएस सहायता गाइड से आपको काफ़ी मदद मिल सकती है ताकि हम इन अनुरोधों को बेहतर ढंग से समझ सकें.
इस कोड स्निपेट में, access_token
वैरिएबल उस टोकन को दिखाता है जो आपके पास है
अनुमति वाले उपयोगकर्ता की ओर से एपीआई अनुरोध करने के लिए मिले. पूरा
उदाहरण में बताया गया है कि उस टोकन को ब्राउज़र के लोकल स्टोरेज में कैसे सेव किया जाता है और उसे कैसे वापस पाया जाता है
इसकी जानकारी मिलती है.
var xhr = new XMLHttpRequest(); xhr.open('GET', 'https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date=2016-05-01&end-date=2016-06-30&metrics=views&' + 'access_token=' + params['access_token']); xhr.onreadystatechange = function (e) { console.log(xhr.response); }; xhr.send(null);
पूरा उदाहरण
OAuth 2.0 एंडपॉइंट
यह कोड सैंपल, JavaScript में OAuth 2.0 फ़्लो को पूरा करने का तरीका बताता है. ऐसा करने के लिए, JavaScript के लिए Google API क्लाइंट लाइब्रेरी. यह कोड ऐसे एचटीएमएल पेज के लिए है जो एपीआई अनुरोध की कोशिश करें. जब आप बटन पर क्लिक करते हैं, तो कोड जांच करके यह देखता है कि पृष्ठ ने आपके ब्राउज़र के लोकल स्टोरेज में मौजूद एपीआई ऐक्सेस टोकन. अगर ऐसा है, तो यह एपीआई अनुरोध को लागू करता है. या फिर, तो यह OAuth 2.0 फ़्लो शुरू कर देता है.
OAuth 2.0 फ़्लो के लिए, पेज पर यह तरीका अपनाएं:
- यह उपयोगकर्ता को Google के OAuth 2.0 सर्वर पर ले जाता है, जो
https://www.googleapis.com/auth/yt-analytics.readonly
दायरा. - अनुरोध किए गए एक या उससे ज़्यादा दायरों का ऐक्सेस देने या अस्वीकार करने के बाद, उपयोगकर्ता को यहां रीडायरेक्ट किया जाता है ओरिजनल पेज, जो फ़्रैगमेंट आइडेंटिफ़ायर स्ट्रिंग से ऐक्सेस टोकन को पार्स करता है.
यह पेज, एपीआई अनुरोध का सैंपल देने के लिए, ऐक्सेस टोकन का इस्तेमाल करता है.
एपीआई का यह अनुरोध, YouTube Analytics API के
reports.query
को कॉल करता है का उपयोग करें.- अगर अनुरोध सही तरीके से लागू होता है, तो ब्राउज़र के डीबगिंग पेज में एपीआई की जांच लॉग की जाती है कंसोल.
ऐप्लिकेशन का ऐक्सेस वापस लेने के लिए, यहां जाएं: आपके लिए अनुमतियां पेज Google खाता. ऐप्लिकेशन को Google API दस्तावेज़ के लिए OAuth 2.0 डेमो के तौर पर सूची में दिखाया जाएगा.
इस कोड को स्थानीय तौर पर चलाने के लिए, आपको YOUR_CLIENT_ID
और
YOUR_REDIRECT_URI
आपके वैरिएबल से संबंधित वैरिएबल
अनुमति देने के क्रेडेंशियल. YOUR_REDIRECT_URI
वैरिएबल
उसी यूआरएल पर सेट होना चाहिए जहां पेज दिखाया जा रहा है. वैल्यू इनमें से किसी एक से पूरी तरह मैच होनी चाहिए
OAuth 2.0 क्लाइंट के लिए, अनुमति वाले रीडायरेक्ट यूआरआई, जिन्हें आपने
API Console पर बताया गया हैCredentials page. अगर आपने
यह मान किसी अधिकृत यूआरआई से मेल नहीं खाता, आपको एक redirect_uri_mismatch
मिलेगा
गड़बड़ी. आपके प्रोजेक्ट में यह भी होना चाहिए
सही एपीआई चालू किया.
<html><head></head><body> <script> var YOUR_CLIENT_ID = 'REPLACE_THIS_VALUE'; var YOUR_REDIRECT_URI = 'REPLACE_THIS_VALUE'; // Parse query string to see if page request is coming from OAuth 2.0 server. var fragmentString = location.hash.substring(1); var params = {}; var regex = /([^&=]+)=([^&]*)/g, m; while (m = regex.exec(fragmentString)) { params[decodeURIComponent(m[1])] = decodeURIComponent(m[2]); } if (Object.keys(params).length > 0 && params['state']) { if (params['state'] == localStorage.getItem('state')) { localStorage.setItem('oauth2-test-params', JSON.stringify(params) ); trySampleRequest(); } else { console.log('State mismatch. Possible CSRF attack'); } } // Function to generate a random state value function generateCryptoRandomState() { const randomValues = new Uint32Array(2); window.crypto.getRandomValues(randomValues); // Encode as UTF-8 const utf8Encoder = new TextEncoder(); const utf8Array = utf8Encoder.encode( String.fromCharCode.apply(null, randomValues) ); // Base64 encode the UTF-8 data return btoa(String.fromCharCode.apply(null, utf8Array)) .replace(/\+/g, '-') .replace(/\//g, '_') .replace(/=+$/, ''); } // If there's an access token, try an API request. // Otherwise, start OAuth 2.0 flow. function trySampleRequest() { var params = JSON.parse(localStorage.getItem('oauth2-test-params')); if (params && params['access_token']) { var xhr = new XMLHttpRequest(); xhr.open('GET', 'https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date=2016-05-01&end-date=2016-06-30&metrics=views&' + 'access_token=' + params['access_token']); xhr.onreadystatechange = function (e) { if (xhr.readyState === 4 && xhr.status === 200) { console.log(xhr.response); } else if (xhr.readyState === 4 && xhr.status === 401) { // Token invalid, so prompt for user permission. oauth2SignIn(); } }; xhr.send(null); } else { oauth2SignIn(); } } /* * Create form to request access token from Google's OAuth 2.0 server. */ function oauth2SignIn() { // create random state value and store in local storage var state = generateCryptoRandomState(); localStorage.setItem('state', state); // Google's OAuth 2.0 endpoint for requesting an access token var oauth2Endpoint = 'https://accounts.google.com/o/oauth2/v2/auth'; // Create element to open OAuth 2.0 endpoint in new window. var form = document.createElement('form'); form.setAttribute('method', 'GET'); // Send as a GET request. form.setAttribute('action', oauth2Endpoint); // Parameters to pass to OAuth 2.0 endpoint. var params = {'client_id': YOUR_CLIENT_ID, 'redirect_uri': YOUR_REDIRECT_URI, 'scope': 'https://www.googleapis.com/auth/yt-analytics.readonly', 'state': state, 'include_granted_scopes': 'true', 'response_type': 'token'}; // Add form parameters as hidden input values. for (var p in params) { var input = document.createElement('input'); input.setAttribute('type', 'hidden'); input.setAttribute('name', p); input.setAttribute('value', params[p]); form.appendChild(input); } // Add form to page and submit it to open the OAuth 2.0 endpoint. document.body.appendChild(form); form.submit(); } </script> <button onclick="trySampleRequest();">Try sample request</button> </body></html>
JavaScript के ऑरिजिन की पुष्टि करने के नियम
आपकी मदद करने के लिए, Google JavaScript के ऑरिजिन पर पुष्टि करने के ये नियम लागू करता है डेवलपर अपने ऐप्लिकेशन सुरक्षित बनाए रखते हैं. आपके JavaScript के ऑरिजिन, इन नियमों के मुताबिक होने चाहिए. आरएफ़सी 3986 सेक्शन 3 देखें डोमेन, होस्ट, और स्कीम की परिभाषा के बारे में नीचे बताया गया है.
सत्यापन नियम | |
---|---|
स्कीम |
JavaScript ऑरिजिन को सादे एचटीटीपी के बजाय, एचटीटीपीएस स्कीम का इस्तेमाल करना चाहिए. लोकलहोस्ट यूआरआई (लोकल होस्ट आईपी पते के यूआरआई सहित) इस नियम का पालन नहीं करते. |
होस्ट |
होस्ट, अमान्य आईपी पते नहीं हो सकते. लोकल होस्ट के आईपी पतों पर यह नियम लागू नहीं होता. |
डोमेन |
“googleusercontent.com” नहीं हो सकते.goo.gl
जब तक कि ऐप्लिकेशन डोमेन का मालिक न हो. |
उपयोगकर्ता की जानकारी |
JavaScript के ऑरिजिन में, userinfo सबकॉम्पोनेंट शामिल नहीं हो सकता. |
पाथ |
JavaScript के ऑरिजिन में, पाथ कॉम्पोनेंट शामिल नहीं किया जा सकता. |
क्वेरी |
JavaScript के ऑरिजिन में क्वेरी कॉम्पोनेंट शामिल नहीं हो सकता. |
फ़्रैगमेंट |
JavaScript के ऑरिजिन में फ़्रैगमेंट कॉम्पोनेंट शामिल नहीं किया जा सकता. |
वर्ण |
JavaScript के ऑरिजिन में कुछ वर्ण नहीं हो सकते, जिनमें ये शामिल हैं:
|
इंक्रीमेंटल अनुमति
OAuth 2.0 प्रोटोकॉल में, आपका ऐप्लिकेशन रिसॉर्स ऐक्सेस करने के लिए अनुमति मांगता है सीमाओं से पहचाना जा सकता है. अनुमति पाने का अनुरोध करना, उपयोगकर्ता अनुभव के लिए सबसे सही तरीका माना जाता है आपके लिए संसाधन उपलब्ध हों. इस तरीके को चालू करने के लिए, Google के ऑथराइज़ेशन सर्वर को इंक्रीमेंटल ऑथराइज़ेशन का समर्थन करता है. इस सुविधा से, ज़रूरत के हिसाब से दायरों का अनुरोध किया जा सकता है और अगर उपयोगकर्ता नए दायरे के लिए अनुमति देता है, तो यह किसी ऐसे टोकन के साथ शेयर किया जाना चाहिए जिसमें वे सभी स्कोप शामिल हों जो उपयोगकर्ता ने प्रोजेक्ट को दिए हैं.
उदाहरण के लिए, मान लें कि कोई ऐप्लिकेशन YouTube Analytics की रिपोर्ट हासिल करता है, जिनमें से कुछ
ये ऐसी मॉनेटरी रिपोर्ट होती हैं जिनके लिए अतिरिक्त स्कोप की ज़रूरत होती है
दूसरी रिपोर्ट के लिए ज़रूरी है. इस स्थिति में, साइन-इन के समय, ऐप्लिकेशन सिर्फ़
ऐक्सेस का अनुरोध करें
https://www.googleapis.com/auth/yt-analytics.readonly
दायरा.
हालांकि, अगर उपयोगकर्ता पैसे की रिपोर्ट फिर से पाने की कोशिश करता है, तो ऐप्लिकेशन ये काम भी कर सकता है:
ऐक्सेस का अनुरोध करें
https://www.googleapis.com/auth/yt-analytics-monetary.readonly
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
दायरा.
इंक्रीमेंटल अनुमति से मिलने वाले ऐक्सेस टोकन पर, ये नियम लागू होते हैं:
- इस टोकन का इस्तेमाल, नया, संयुक्त प्राधिकरण.
- जब किसी ऐक्सेस टोकन को हासिल करने के लिए, अनुमति वाले रिफ़्रेश टोकन का इस्तेमाल किया जाता है, तो
ऐक्सेस टोकन, अनुमति देने वाले संयुक्त शुल्क को दिखाता है और इसका इस्तेमाल
जवाब में
scope
वैल्यू शामिल की गईं. - एक साथ अनुमति देने में, वे सभी दायरे शामिल होते हैं जिन्हें उपयोगकर्ता ने एपीआई प्रोजेक्ट को दिया है. यहां तक कि अगर अनुदान के लिए अलग-अलग क्लाइंट से अनुरोध किया गया था. उदाहरण के लिए, अगर किसी उपयोगकर्ता ने एक ऐप्लिकेशन के डेस्कटॉप क्लाइंट का इस्तेमाल करके एक दायरे की अनुमति दी गई और फिर उसी दिए गए हैं, तो संयुक्त प्राधिकरण में दोनों दायरे शामिल होंगे.
- अगर किसी ऐसे टोकन को रद्द किया जाता है जो अनुमति देने वाले मिले-जुले तरीकों का इस्तेमाल करता है, तो उन सभी को ऐक्सेस करें संबंधित उपयोगकर्ता की ओर से अनुमति के दायरे एक साथ निरस्त किए जाते हैं.
नीचे दिए गए कोड सैंपल, किसी मौजूदा ऐक्सेस टोकन में स्कोप जोड़ने का तरीका दिखाते हैं. इस तरीके से, ताकि आपको एक से ज़्यादा ऐक्सेस टोकन मैनेज करने की ज़रूरत न पड़े.
OAuth 2.0 एंडपॉइंट
इस उदाहरण में, कॉल करने वाला ऐप्लिकेशन, YouTube Analytics में मौजूद, उपयोगकर्ता को मिलने वाले ऐक्सेस से जुड़ी जानकारी ने पहले ही एप् लिकेशन को अनुमति दे दी है.
किसी मौजूदा ऐक्सेस टोकन में स्कोप जोड़ने के लिए, include_granted_scopes
शामिल करें
पैरामीटर की जानकारी Google के OAuth 2.0 सर्वर से जुड़े अनुरोध में मिलेगी.
नीचे दिया गया कोड स्निपेट इसे करने का तरीका बताता है. स्निपेट मान लेता है कि आपने
वे दायरे जिनके लिए आपका ऐक्सेस टोकन, ब्राउज़र की लोकल स्टोरेज में मान्य है. (
पूरा उदाहरण कोड, दायरों की एक सूची सेव करता है, जिसके लिए ऐक्सेस टोकन
ब्राउज़र के लोकल में oauth2-test-params.scope
प्रॉपर्टी को सेट करके मान्य है
storage.)
स्निपेट उन दायरों की तुलना करता है जिनके लिए ऐक्सेस टोकन आपके काम के दायरे के साथ मान्य है
डालें. अगर ऐक्सेस टोकन उस दायरे को कवर नहीं करता है, तो OAuth 2.0 फ़्लो शुरू हो जाता है.
यहां oauth2SignIn
फ़ंक्शन वही है जो इसमें दिया गया था
चरण 2 (और जिसकी जानकारी बाद में पूर्ण
उदाहरण के लिए).
var SCOPE = 'https://www.googleapis.com/auth/yt-analytics.readonly'; var params = JSON.parse(localStorage.getItem('oauth2-test-params')); var current_scope_granted = false; if (params.hasOwnProperty('scope')) { var scopes = params['scope'].split(' '); for (var s = 0; s < scopes.length; s++) { if (SCOPE == scopes[s]) { current_scope_granted = true; } } } if (!current_scope_granted) { oauth2SignIn(); // This function is defined elsewhere in this document. } else { // Since you already have access, you can proceed with the API request. }
टोकन निरस्त करना
कुछ मामलों में, हो सकता है कि उपयोगकर्ता किसी ऐप्लिकेशन को दिया गया ऐक्सेस वापस लेना चाहें. उपयोगकर्ता, ऐक्सेस रद्द कर सकता है पर जाकर खाता सेटिंग. ज़्यादा जानकारी के लिए, हटाएं तीसरे पक्ष की साइटों का साइट या ऐप्लिकेशन ऐक्सेस सेक्शन और ऐसे ऐप्लिकेशन जिनके पास आपके खाते का ऐक्सेस है सहायता दस्तावेज़ देखें.
किसी ऐप्लिकेशन को दी गई ऐक्सेस को प्रोग्राम के हिसाब से रद्द करना भी संभव है. प्रोग्राम के हिसाब से प्रोसेस को रद्द करना तब ज़रूरी होता है, जब कोई उपयोगकर्ता सदस्यता छोड़ता है, किसी ऐप्लिकेशन के लिए ज़रूरी एपीआई संसाधनों में बहुत ज़्यादा बदलाव हुए हैं. दूसरे शब्दों में, हटाने की प्रोसेस के हिस्से में, एपीआई अनुरोध शामिल हो सकता है. इससे यह पक्का किया जा सकेगा कि पहले से दी गई अनुमतियां ऐप्लिकेशन को दी गई अनुमति हटा दी जाती है.
OAuth 2.0 एंडपॉइंट
किसी टोकन को प्रोग्राम के हिसाब से रद्द करने के लिए, आपका ऐप्लिकेशन इसके लिए अनुरोध करता है
https://oauth2.googleapis.com/revoke
और इसमें पैरामीटर के तौर पर टोकन शामिल होता है:
curl -d -X -POST --header "Content-type:application/x-www-form-urlencoded" \ https://oauth2.googleapis.com/revoke?token={token}
टोकन, ऐक्सेस टोकन या रीफ़्रेश टोकन हो सकता है. अगर टोकन एक ऐक्सेस टोकन है और उसमें प्रासंगिक रीफ़्रेश टोकन के रूप में, तो रीफ़्रेश टोकन को भी निरस्त कर दिया जाएगा.
अगर सहमति रद्द हो गई है, तो रिस्पॉन्स का एचटीटीपी स्टेटस कोड यह होगा
200
. गड़बड़ी की स्थितियों के लिए, एक एचटीटीपी स्टेटस कोड 400
दिखाया जाता है
डालें.
नीचे दिया गया JavaScript स्निपेट यह दिखाता है कि
JavaScript के लिए Google API क्लाइंट लाइब्रेरी. निरस्त करने के लिए, Google के OAuth 2.0 एंडपॉइंट से
टोकन, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) के साथ काम नहीं करते. हालांकि, कोड एक फ़ॉर्म बनाता है और सबमिट करता है
इस फ़ॉर्म को एंडपॉइंट पर पोस्ट करने के लिए, XMLHttpRequest()
तरीके का इस्तेमाल करने के बजाय
अनुरोध.
function revokeAccess(accessToken) { // Google's OAuth 2.0 endpoint for revoking access tokens. var revokeTokenEndpoint = 'https://oauth2.googleapis.com/revoke'; // Create <form> element to use to POST data to the OAuth 2.0 endpoint. var form = document.createElement('form'); form.setAttribute('method', 'post'); form.setAttribute('action', revokeTokenEndpoint); // Add access token to the form so it is set as value of 'token' parameter. // This corresponds to the sample curl request, where the URL is: // https://oauth2.googleapis.com/revoke?token={token} var tokenField = document.createElement('input'); tokenField.setAttribute('type', 'hidden'); tokenField.setAttribute('name', 'token'); tokenField.setAttribute('value', accessToken); form.appendChild(tokenField); // Add form to page and submit it to actually revoke the token. document.body.appendChild(form); form.submit(); }
'सभी खातों की सुरक्षा' सुविधा को लागू करना
अपने उपयोगकर्ताओं की सुरक्षा के लिए, Google खातों में, क्रॉस-खाता लागू किया जा रहा है Google की 'सभी खातों की सुरक्षा' सेवा का इस्तेमाल करके अपने डेटा की सुरक्षा करना. यह सेवा आपको सुरक्षा से जुड़ी गतिविधियों की सूचना पाने की सदस्यता लेते हैं. इन सूचनाओं में, आपके ऐप्लिकेशन के बारे में जानकारी दी जाती है उपयोगकर्ता खाते में बड़े बदलाव हुए हैं. इसके बाद, कार्रवाई करने के लिए जानकारी का इस्तेमाल किया जा सकता है. इवेंट में शामिल होने का फ़ैसला किस तरह लिया जाएगा.
Google की 'सभी खातों की सुरक्षा' सेवा से आपके ऐप्लिकेशन को भेजे जाने वाले इवेंट टाइप के कुछ उदाहरण:
-
https://schemas.openid.net/secevent/risc/event-type/sessions-revoked
-
https://schemas.openid.net/secevent/oauth/event-type/token-revoked
-
https://schemas.openid.net/secevent/risc/event-type/account-disabled
ज़्यादा जानकारी के लिए, 'सभी खातों की सुरक्षा' पेज की मदद से उपयोगकर्ता खातों को सुरक्षित रखना .