Skip to main content

PKCE के साथ OAuth 2.0 ऑथराइज़ेशन कोड फ़्लो

परिचय

OAuth 2.0 एक उद्योग-मानक प्राधिकरण प्रोटोकॉल है, जो किसी एप्लिकेशन के स्कोप पर अधिक नियंत्रण और कई डिवाइसों पर प्राधिकरण फ़्लो की सुविधा देता है। OAuth 2.0 आपको विशिष्ट, सूक्ष्म-स्तर के scopes चुनने की अनुमति देता है, जो उपयोगकर्ता की ओर से आपको खास अनुमतियाँ देते हैं।  अपने ऐप में OAuth 2.0 सक्षम करने के लिए, आपको इसे डेवलपर कंसोल के ऐप सेटिंग्स section में मौजूद अपने ऐप की authentication settings में सक्षम करना होगा।

मेरे क्रेडेंशियल कितने समय तक मान्य रहेंगे?

डिफ़ॉल्ट रूप से, PKCE के साथ OAuth 2.0 ऑथराइज़ेशन कोड फ़्लो के ज़रिए बनाया गया access token केवल दो घंटे तक ही मान्य रहेगा, जब तक कि आपने offline.access scope का इस्तेमाल न किया हो।

रीफ़्रेश टोकन

रीफ़्रेश टोकन किसी एप्लिकेशन को रीफ़्रेश टोकन फ़्लो के माध्यम से उपयोगकर्ता से फिर से अनुमति मांगे बिना नया access token प्राप्त करने की अनुमति देते हैं। यदि offline.access scope लागू किया जाता है, तो एक OAuth 2.0 रीफ़्रेश टोकन जारी किया जाएगा। इस रीफ़्रेश टोकन की मदद से आप एक access token प्राप्त कर सकते हैं। यदि यह scope पास नहीं किया जाता है, तो हम रीफ़्रेश टोकन जनरेट नहीं करेंगे। रीफ़्रेश टोकन का उपयोग करके नया access token प्राप्त करने के लिए किए जाने वाले अनुरोध का एक उदाहरण इस प्रकार है:

ऐप सेटिंग्स

आप अपने ऐप की प्रमाणीकरण सेटिंग्स के लिए OAuth 1.0a या OAuth 2.0 चुन सकते हैं। आप किसी ऐप को OAuth 1.0a और OAuth 2.0, दोनों के एक्सेस के लिए भी सक्षम कर सकते हैं। OAuth 2.0 का उपयोग केवल X API v2 के साथ किया जा सकता है। अगर आपने OAuth 2.0 चुना है, तो आप अपने ऐप के Keys and Tokens सेक्शन में Client ID देख सकेंगे। 

गोपनीय क्लाइंट

गोपनीय क्लाइंट क्रेडेंशियल्स को सुरक्षित रूप से रख सकते हैं, बिना उन्हें अनधिकृत पक्षों के सामने उजागर किए, और authorization server के साथ सुरक्षित रूप से authenticate कर सकते हैं, जिससे आपका client secret सुरक्षित रहता है। Public client, क्योंकि वे आमतौर पर ब्राउज़र में या मोबाइल डिवाइस पर चलते हैं, आपके client secret का उपयोग नहीं कर सकते। यदि आप ऐसे ऐप का type चुनते हैं जो एक गोपनीय क्लाइंट है, तो आपको एक client secret प्रदान किया जाएगा।  यदि आपने डेवलपर कंसोल में ऐसा client type चुना है जो एक गोपनीय क्लाइंट है, तो आप Client Secret भी देख पाएँगे। आपके विकल्प हैं Native App, Single page App, Web App, Automated App, या bot। Native App और Single page App public client हैं, जबकि Web App, Automated App, और bot गोपनीय क्लाइंट हैं। मान्य Authorization Header वाले गोपनीय क्लाइंट के लिए आपको client id की आवश्यकता नहीं होती। Public client के अनुरोधों में आपको अब भी body में Client Id शामिल करना आवश्यक है। 

स्कोप

स्कोप आपको अपने ऐप के लिए सूक्ष्म स्तर की ऐक्सेस सेट करने देते हैं, ताकि आपके ऐप के पास केवल वही अनुमतियाँ हों जिनकी उसे आवश्यकता है। कौन-से स्कोप किन एंडपॉइंट्स से मैप होते हैं, इसके बारे में अधिक जानने के लिए हमारी प्रमाणीकरण मैपिंग गाइड देखें।

रेट लिमिट्स

अधिकांश मामलों में, रेट लिमिट्स OAuth 1.0a के साथ प्रमाणीकरण करते समय जैसी ही हैं, सिवाय Tweet lookup और Users lookup के। OAuth 2.0 का उपयोग करते समय, हम Tweet lookup और user lookup के लिए प्रति-ऐप सीमा को 15 मिनट में 300 अनुरोधों से बढ़ाकर 900 अनुरोध कर रहे हैं। अधिक जानने के लिए, रेट लिमिट्स पर हमारा दस्तावेज़ ज़रूर देखें।

ग्रांट टाइप

इस शुरुआती लॉन्च के लिए हम केवल authorization code with PKCE और refresh token को समर्थित grant types के रूप में उपलब्ध करा रहे हैं। भविष्य में हम और grant types उपलब्ध करा सकते हैं।

OAuth 2.0 फ्लो

OAuth 2.0, OAuth 1.0a के लिए वर्तमान में उपयोग किए जा रहे फ्लो के समान फ्लो का उपयोग करता है। आप इस विषय पर हमारे दस्तावेज़ में इसका आरेख और विस्तृत व्याख्या देख सकते हैं। 

शब्दावली

पैरामीटर

OAuth 2.0 authorize URL बनाने के लिए, आपको यह सुनिश्चित करना होगा कि authorization URL में नीचे दिए गए पैरामीटर शामिल हों। 

ऑथराइज़ URL

OAuth 2.0 के साथ, आप एक ऑथराइज़ URL बनाते हैं, जिसका उपयोग किसी उपयोगकर्ता को X के “साइन इन” की तरह एक प्रमाणीकरण फ़्लो के ज़रिए प्रमाणित करने की अनुमति देने के लिए किया जा सकता है।  आपके द्वारा बनाए जा रहे URL का एक उदाहरण इस प्रकार है: 
इस URL के सही तरह से काम करने के लिए उसका उचित encoding होना ज़रूरी है। percent encoding पर हमारा दस्तावेज़ ज़रूर देखें।