गड़बड़ियां अलग-अलग लेयर में हो सकती हैं. गड़बड़ी होने की जगह के आधार पर, आपको अलग-अलग तरीकों से सूचना मिल सकती है.
ज़रूरी OAuth पैरामीटर मौजूद नहीं हैं
अगर आपने OAuth के ज़रूरी पैरामीटर, जैसे कि क्लाइंट आईडी या स्कोप सेट करना भूल दिया है, तो आपको अपने ब्राउज़र के JavaScript कंसोल में इस तरह का गड़बड़ी वाला मैसेज दिखेगा.
OAuth कॉन्फ़िगरेशन से जुड़ी गड़बड़ियां ठीक करना
कुछ गड़बड़ियों को ठीक करने के लिए, Google API कंसोल में बदलाव करना पड़ सकता है.
- अगर अब तक क्लाइंट आईडी नहीं बनाया गया है, तो उसे बनाता है.
- पॉप-अप यूज़र एक्सपीरियंस के लिए, ऐसे सभी डोमेन जोड़ें जो
Authorized JavaScript origins
पर मौजूदा फ़्लो को ट्रिगर कर सकते हैं. - रीडायरेक्ट यूज़र एक्सपीरियंस के लिए,
Authorized redirect URIs
में वे सभी यूआरएल जोड़ें जिन्हें अनुमति के जवाब मिल सकते हैं. - OAuth की सहमति वाली स्क्रीन को सही तरीके से कॉन्फ़िगर करें.
- अगर ज़रूरी हो, तो अपने ऐप्लिकेशन की पुष्टि के लिए उसे सबमिट करें.
- Google की OAuth 2.0 की नीतियों का पालन करने के लिए, आपको कुछ और चरण पूरे करने पड़ सकते हैं.
OAuth पैरामीटर की अमान्य वैल्यू
अगर आपने OAuth पैरामीटर में अमान्य वैल्यू सेट की हैं, जैसे कि अमान्य क्लाइंट आईडी, स्कोप आइडेंटिफ़ायर या रिस्पॉन्स टाइप की वैल्यू, तो आपको OAuth गड़बड़ी वाला पेज दिखेगा.
OAuth गड़बड़ी के जवाब
OAuth से गड़बड़ी का रिस्पॉन्स मिल सकता है. ऐसे में, आपका callback
फ़ंक्शन, पैरामीटर के तौर पर गड़बड़ी के रिस्पॉन्स के साथ ट्रिगर होगा. यहां OAuth गड़बड़ी के जवाब का उदाहरण दिया गया है.
{ "error":"access_denied" }
इसके कुछ उदाहरण यहां दिए गए हैं.
- उपयोगकर्ता, OAuth अनुरोध को अस्वीकार कर देता है.
prompt=none
पैरामीटर वाले OAuth अनुरोध के लिए, उपयोगकर्ता की पुष्टि पहले से नहीं की गई है. साथ ही, अनुरोध किए गए स्कोप के लिए, उपयोगकर्ता ने पहले से सहमति कॉन्फ़िगर नहीं की है.
यहां दिए गए उदाहरण में, OAuth से मिलने वाले सही और गलत जवाबों को मैनेज करने का तरीका बताया गया है.
function myCallback(response) {
if (response.error) {
// Handle error response
... ...
} else if (response.code) {
// Handle success code response
... ...
}
}
OAuth से जुड़ी गड़बड़ियां
OAuth, इन स्थितियों में व्यवहार तय नहीं करता:
- पॉप-अप विंडो नहीं खुलती.
- OAuth का जवाब मिलने से पहले, पॉप-अप विंडो बंद हो जाती है.
यह लाइब्रेरी इन गड़बड़ियों को कैप्चर करती है और अगर सेट की गई है, तो error_callback
को ट्रिगर करती है. गड़बड़ी किस तरह की है, इसकी जांच ज़रूर करें. जैसे: ऐसा न करने पर, जब यह लाइब्रेरी बाद में गड़बड़ी के नए टाइप के साथ काम करेगी, तो आपके कोड लॉजिक पर असर पड़ सकता है.
function myErrorCallback(err) {
if (err.type == 'popup_failed_to_open') {
// The popup window is failed to open
... ...
} else if (err.type == 'popup_closed') {
// The popup window is closed before an OAuth response is returned
... ...
}
}
const client = google.accounts.oauth2.initCodeClient({
client_id: 'YOUR_GOOGLE_CLIENT_ID',
scope: 'https://www.googleapis.com/auth/calendar.readonly',
ux_mode: 'popup',
callback: myCallback,
error_callback: myErrorCallback
});