OAuth: स्थानीय URL के साथ परीक्षण कैसे करें?


154

मैं OAuth बटन का परीक्षण करने की कोशिश कर रहा हूं , लेकिन वे सभी (फेसबुक, ट्विटर, लिंक्डइन) त्रुटियों के साथ वापस आ जाते हैं जो संकेत देते हैं कि मैं परीक्षण नहीं कर सकता या उनका उपयोग नहीं कर सकता हूं स्थानीय URL ।

लोग आमतौर पर OAuth सामान के साथ विकास में कैसे काम करते हैं यदि वे सभी गैर-देव और गैर-स्थानीय कनेक्शन वातावरण की आवश्यकता करते हैं?


मैंने उस पर कुछ समय पहले जवाब दिया: stackoverflow.com/a/10410838/604511
जेसविन जोस

जवाबों:


133

अद्यतन अक्टूबर 2016 : अब सबसे आसान: lvh.me का उपयोग करें जो हमेशा इंगित करता है 127.0.0.1

पिछला उत्तर :

चूंकि कॉलबैक अनुरोध ब्राउज़र द्वारा जारी किया जाता है, HTTP पुनर्निर्देशित प्रतिक्रिया के रूप में, आप एक डोमेन को इंगित करने के लिए अपनी .hosts फ़ाइल या समकक्ष सेट कर सकते हैं जो नहीं है। localhost 127.0.0.1 तक है।

उदाहरण के लिए कहें कि आप ट्विटर के साथ निम्नलिखित कॉलबैक रजिस्टर करते हैं http://www.publicdomain.com/callback/:। सुनिश्चित करें कि www.publicdomain.comआपकी मेजबान फ़ाइल में 127.0.0.1 अंक है, और वह ट्विटर www.publicdomain.com पर एक सफल DNS लुकअप कर सकता है, अर्थात डोमेन को अस्तित्व में रखने की आवश्यकता है और यदि अनुरोध किया जाता है तो विशिष्ट कॉलबैक को संभवतः 200 स्थिति संदेश वापस करना चाहिए।

संपादित करें :

मैं सिर्फ निम्नलिखित लेख पढ़ता हूं: http://www.tonyamoyal.com/2009/08/17/how-to-quickly-set-up-a-test-for-twitter-oauth-authentication-from-your.itocal -machine / , जो इस प्रश्न से जुड़ा था: Twitter oAuth callbackUrl - लोकलहोस्ट डेवलपमेंट

लेख को उद्धृत करने के लिए:

आप एक URL को छोटा करने वाली बिट का उपयोग कर सकते हैं। बस [लोकलहोस्ट यूआरएल जैसे http // लोकलहोस्ट: 8080 / twitter_callback] को छोटा करें और छोटे यूआरएल को अपने ट्विटर ऐप में कॉलबैक के रूप में पंजीकृत करें।

यह .hosts फ़ाइल के चारों ओर फ़िडलिंग की तुलना में आसान होना चाहिए।

ध्यान दें कि अब (अगस्त '14) bit.ly लोकलहोस्ट को लिंक फॉरवर्ड करने की अनुमति नहीं दे रहा है; हालाँकि Google लिंक शॉर्टनर काम करता है।

PS संपादित करें: (Nov '18): Google लिंक शॉर्टनर ने लोकलहोस्ट या 127.0.0.1 के लिए समर्थन देना बंद कर दिया।


3
मुझे लगा कि सर्वर कॉलबैकलूर को कॉल कर रहा है, और अब एहसास हुआ कि ग्राहक क्लाइंट के रूप में मैसेंजर का उपयोग करता है और सर्वरों के बीच कोई संबंध नहीं बनता है जो इसे बहुत सरल बनाता है।
क्रिस्टियन बेनोइट

10
यह ध्यान देने योग्य है कि lvh.me का स्वामित्व लेवी कुक नामक एक सज्जन के पास है (देखें gist.github.com/levicook/563675 ) और यह निजी तौर पर स्वामित्व में है। वह एक अच्छे आदमी की तरह लगता है लेकिन यह एक वैश्विक प्राधिकारी द्वारा एक औपचारिक अधिकृत डोमेन नहीं है इसलिए यह किसी समय में "सैद्धांतिक रूप से" काम करना बंद कर सकता है।
मारियो पेशेव

4
लिखने के समय तक, Google फैंसी डोमेन एक्सटेंशन (जैसे .me) को रीडायरेक्ट URL में अनुमति नहीं देता है । नतीजतन, lvh.me काम नहीं कर रहा था। मैंने इसके बजाय lacolhost.com के साथ सफलता पाई है ।
पुलजोश

3
Lvh.me का मालिक भी आपके सभी प्राधिकरण कोड एकत्र करना शुरू कर सकता है ...
टेलर बुकानन

2
@JonNylander वे आसानी से अपने DNS रिकॉर्ड को बदलकर दूसरी साइट की ओर इशारा कर सकते हैं, जो पारदर्शिता कोड और राज्य को संग्रहीत करता है और फिर भी लोकलहोस्ट पर वापस भेज देता है। जब तक आप नियमित रूप से DNS की जाँच कर रहे हैं, तब तक आप ध्यान नहीं देंगे जब तक कि उनके पास पहले से ही पहुँच न हो। केवल वे जो तुरंत नोटिस करेंगे, वे लोग ब्राउज़र संदर्भ के बाहर इसका उपयोग कर रहे हैं।
टेलर बुकानन

18

या आप https://tolocalhost.com/ का उपयोग कर सकते हैं और कॉन्फ़िगर कर सकते हैं कि कैसे यह आपके स्थानीय साइट पर कॉलबैक पुनर्निर्देशित करना चाहिए। आप होस्टनाम निर्दिष्ट कर सकते हैं (यदि लोकलहोस्ट से भिन्न हो, यानी yourapp.local और पोर्ट नंबर)। केवल विकास के उद्देश्य से।


13

आप ngrok: https://ngrok.com/ का भी उपयोग कर सकते हैं । मैं अपने लोकलहोस्ट पर एक सार्वजनिक सर्वर चलाने के लिए हर समय इसका उपयोग करता हूं। उम्मीद है की यह मदद करेगा।

एक अन्य विकल्प जो आपके स्वयं के कस्टम डोमेन को मुफ्त में प्रदान करता है, वो हैं serveo.net और https://localtunnel.github.io/www/


1
यह आसान था जो मैंने सोचा था! बस मेरा खाता बनाया, इसे स्थापित किया और भाग गया ./ngrok http 8080 -host-header="localhost:8080"और मैं एक सार्वजनिक यूआरएल के साथ चल रहा था।
मिगुएल रेयेस

3

Google स्थानीय http://webporject.devया .loc.etc और Google शॉर्ट लिंक का उपयोग करके परीक्षण स्थानीय एपीआई को अनुमति नहीं देता है जो आपके स्थानीय यूआरएल ( http://webporject.dev) को भी छोटा करता है bit.ly:)। Google केवल url स्वीकार करता है जो शुरू होता हैhttp://localhost/ ...

यदि आप Google के सामान्य एपीआई का परीक्षण करना चाहते हैं, तो आपको इन चरणों का पालन करना चाहिए ...

नया उपनाम सेट करें

यदि आप openserverसेटिंग पैनल पर जाते हैं aliases tabऔर क्लिक करते हैं localhostऔर ड्रॉपडाउन पर क्लिक करते हैं तो इसे खोजें और चुनें।

अब आपको अगली ड्रॉपडाउन के पहले ड्रॉपडाउन के बगल में क्लिक करके अपने स्थानीय वेब प्रोजेक्ट रूट फ़ोल्डर को चुनना चाहिए।

और नामक बटन पर क्लिक करें addऔर अपारदर्शी पुनः आरंभ करें।

अब इस लिंक पर उपलब्ध आपकी स्थानीय परियोजना http://localhost/ भी आप इस स्थानीय यूआरएल को google से संबंधित redirect urlफ़ील्ड में चिपका सकते हैं ...


3

आप विंडोज़ या लिनक्स पर मेजबानों की फाइल को संपादित कर सकते हैं Windows: C: \ Windows \ System32 \ ड्राइवर्स \ etc \ मेजबान लिनक्स: / etc / मेजबान

लोकलहोस्ट नाम रिज़ॉल्यूशन को DNS के भीतर ही हैंडल किया जाता है।

127.0.0.1 mywebsite.com

अपने परीक्षण समाप्त करने के बाद आप इसे निष्क्रिय करने के लिए जो लाइन जोड़ते हैं, उस पर आप टिप्पणी करते हैं

127.0.0.1 mywebsite.com


इसने मेरे लिए काम किया, धन्यवाद। इसके अलावा, यदि आप पोर्ट 3000 पर Node.js का उपयोग करते हैं, तो mywebsite.com:3000
flow3r

3

मैक उपयोगकर्ताओं के लिए, /etc/hostsफ़ाइल को संपादित करें । आपको sudo vi /etc/hostsइसका उपयोग केवल पढ़ने के लिए करना है । प्राधिकरण के बाद, oauth सर्वर कॉलबैक URL भेजता है, और चूंकि कॉलबैक URL आपके स्थानीय ब्राउज़र पर प्रदान किया जाता है, इसलिए स्थानीय DNS सेटिंग काम करेगी:

127.0.0.1       mylocal.com

0

संदर्भ के रूप में Google OAuth लेना

  • अपने OAuth क्लाइंट टैब में

    1. अपने ऐप URI उदाहरण(http://localhost:3000) को अधिकृत JavaScript मूल URI में जोड़ें
  • आपकी OAuth सहमति स्क्रीन में

    1. जोड़े mywebsite.comको अधिकृत डोमेन
  • Windows C:\Windows\System32\Drivers\etc\hosts Linux : /etc/hostsजोड़ने के लिए विंडोज़ या लाइनक्स पर होस्ट फ़ाइल को संपादित करें 127.0.0.1 mywebsite.com (यदि कोई अन्य 127.0.0.1 है तो एनबी टिप्पणी करें)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.