OAuth कॉलबैक को लोकल पर टेस्ट करने के लिए आपको एक सार्वजनिक HTTPS URL चाहिए जो आपके लोकल ऐप की ओर इशारा करे। OAuth प्रोवाइडर प्रमाणीकरण के बाद उपयोगकर्ता को एक रजिस्टर्ड कॉलबैक URL पर वापस रीडायरेक्ट करते हैं — और अधिकांश को HTTPS चाहिए, जो सादा localhost अतिरिक्त सेटअप के बिना नहीं दे सकता।
OAuth redirect URI localhost को क्यों ब्लॉक करते हैं
OAuth 2.0 प्रोवाइडर redirect_uri पैरामीटर को रजिस्टर्ड URL की एक whitelist के विरुद्ध सत्यापित करते हैं। डेवलपमेंट के दौरान आपका कॉलबैक ऐसा दिख सकता है:
https://your-app.portpreview.dev/auth/callback
टनल के बिना आप या तो http://localhost:3000/auth/callback रजिस्टर करते हैं (कुछ प्रोवाइडर अनुमति देते हैं, सभी नहीं) या हर auth बदलाव के लिए स्टेजिंग पर डिप्लॉय करते हैं। एक localhost टनल आपके मशीन पर एक असली HTTPS एंडपॉइंट देता है।
लोकल पर OAuth टेस्ट करने के लिए क्या चाहिए
- आपके प्रोवाइडर से OAuth ऐप क्रेडेंशियल (client ID और secret)।
- लॉगिन शुरू करने और कॉलबैक संभालने के लिए auth रूट वाला एक लोकल ऐप।
- प्रोवाइडर डैशबोर्ड में अनुमत redirect URI के रूप में रजिस्टर की गई एक टनल URL।
- डेवलपमेंट के दौरान टनल URL की ओर इशारा करने वाले एनवायरनमेंट वेरिएबल।
चरण-दर-चरण: PortPreview के साथ OAuth लोकल टेस्टिंग
- OAuth रूट सक्षम करके अपने ऐप को लोकल चलाएँ।
- सार्वजनिक HTTPS URL पाने के लिए
npx portpreview 3000चलाएँ। - कॉलबैक URL (उदाहरण के लिए
https://your-app.portpreview.dev/auth/callback) को अपने OAuth प्रोवाइडर के अनुमत redirect URI में जोड़ें। - अपने लोकल एनवायरनमेंट को टनल URL को बेस URL के रूप में उपयोग करने हेतु अपडेट करें।
- ब्राउज़र में OAuth फ़्लो शुरू करें और पूरा रीडायरेक्ट चक्र पूरा करें।
- टोकन एक्सचेंज, सेशन निर्माण और एरर हैंडलिंग सत्यापित करें।
प्रोवाइडर-विशिष्ट सुझाव
Google OAuth
Google डेवलपमेंट के लिए http://localhost की अनुमति देता है, पर HTTPS टनल से टेस्टिंग प्रोडक्शन-जैसे व्यवहार को सत्यापित करती है, जिसमें secure cookie फ़्लैग और mixed-content नीतियाँ शामिल हैं।
GitHub OAuth
GitHub redirect URI का बिल्कुल सटीक मिलान माँगता है। अपनी टनल URL को OAuth ऐप सेटिंग्स में रजिस्टर करें और टनल सेशन बदलने पर अपडेट करें, या यदि आपका टनल प्रोवाइडर समर्थन करता है तो एक स्थिर subdomain का उपयोग करें।
Auth0 और एंटरप्राइज़ IdP
एंटरप्राइज़ आइडेंटिटी प्रोवाइडर अक्सर HTTPS कॉलबैक माँगते हैं और कभी-कभी localhost को पूरी तरह प्रतिबंधित करते हैं। लोकल SAML और OIDC इंटीग्रेशन टेस्टिंग के लिए टनल मानक उपाय हैं।
OAuth लोकल टेस्टिंग की आम गलतियाँ
- redirect URI बेमेल: कॉलबैक URL का बिल्कुल सटीक मिलान होना चाहिए, जिसमें अंत के slash और path का केस शामिल है।
- पुरानी टनल URL: यदि सेशनों के बीच आपकी टनल URL बदलती है, तो प्रोवाइडर whitelist अपडेट करें।
- state पैरामीटर सत्यापित न होना: CSRF हमलों को रोकने के लिए हमेशा
stateपैरामीटर सत्यापित करें, यहाँ तक कि डेवलपमेंट में भी। - cookie डोमेन समस्याएँ: यदि डोमेन सेटिंग्स टनल hostname से टकराती हैं तो सेशन cookie टिक नहीं सकतीं।
सुरक्षा संबंधी विचार
OAuth कॉलबैक ऑथराइज़ेशन कोड ले जाते हैं जिन्हें सर्वर-साइड पर एक्सचेंज करना होता है। client secret को कभी फ़्रंटएंड कोड में उजागर न करें, और टनल URL को अस्थायी डेवलपमेंट एंडपॉइंट मानें — प्रोडक्शन डोमेन नहीं। बेहतरीन तरीकों के लिए हमारी localhost टनल सुरक्षा गाइड पढ़ें।
OAuth फ़्लो टीम के साथ साझा करें
जब प्रोडक्ट या QA को सोशल लॉगिन टेस्ट करना हो, तो स्टेजिंग पर डिप्लॉय करने के बजाय टनल URL साझा करें। सहयोग वर्कफ़्लो के लिए अपना लोकल dev सर्वर कैसे साझा करें देखें।
एक ही टनल से OAuth और वेबहुक टेस्टिंग को सरल बनाने के लिए PortPreview की वेटलिस्ट में शामिल हों।