2015-02-20 13 views
15

का उपयोग कर Google प्रमाणीकरण कॉलबैक पर गुम स्कोप त्रुटि यह त्रुटि केवल स्थानीय पर नहीं, Heroku (उत्पादन) पर होती है। मैं दोनों की कोशिश की है:Node.js/पासपोर्ट

passport.authenticate('google', { scope: 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/analytics.readonly' }) 

और,

passport.authenticate('google', { scope: ['profile', 'email'] })

चाहे गुंजाइश एक सरणी, या एक अंतरिक्ष-सीमांकित स्ट्रिंग है।

जब मैं Google प्रमाणीकरण लिंक पर जाता हूं, तो URL यूआरएल में है। मेरे लाइव उत्पादन ऐप में उत्पन्न एक में कोई अंतर नहीं है।

लेकिन मैं अभी भी मिलती है:

Error 400 

Error: invalid_request 

Missing required parameter: scope 
+3

क्या आपने Google डेवलपर कंसोल में अपना Google ऐप देखने की कोशिश की है? मैं अनुमान लगा रहा हूं कि आपने अपने उत्पादन ऐप के लिए वहां एक अधिकृत रीडायरेक्ट यूआरआई प्रदान नहीं किया होगा (माना जाता है कि यह स्थानीय रूप से काम कर रहा है, यह सबसे संभावित परिदृश्य है)। कभी-कभी Google द्वारा दी गई त्रुटियां गलत/संदिग्ध होती हैं (मैंने इसे कठिन तरीके से सीखा है)। – rdegges

उत्तर

6

मैं इसे ले आप पासपोर्ट गूगल OAuth ही नहीं, पासपोर्ट गूगल (OpenId) मॉड्यूल का उपयोग कर रहे हैं?

यदि आप ओएथ पासपोर्ट का उपयोग कर रहे हैं, तो Google के साथ प्रमाणीकरण के लिए अतिरिक्त स्कोप पैरामीटर की आवश्यकता होती है। स्ट्रिंग के रूप

दर्रा, आप 'openid' 1 शब्द, जैसे के रूप में पारित करना होगा: उदाहरण के लिए यदि आप किसी उपयोगकर्ता की Google डिस्क पर प्रति-फ़ाइल का उपयोग करना चाहता था, ,

openid profile email https://www.googleapis.com/auth/drive.file 

स्रोत (रों) :

https://developers.google.com/identity/protocols/OpenIDConnect#scope-param https://developers.google.com/+/api/oauth#login-scopes

+0

https://github.com/jaredhanson/passport-google-oauth बनाम https://github.com/jaredhanson/passport-google – Sharry

+0

यहां भी अच्छा जवाब: http://stackoverflow.com/questions/24352975/passport -google-oauth-on-localhost? lq = 1 – Sharry

0

त्रुटि संदेश के लिए

Error 400 
Error: invalid_request 
Missing required parameter: scope 

आप अपने प्रपत्र

<input type="hidden" name="scope" value="https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo#email https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/tasks https://www-opensocial.googleusercontent.com/api/people https://www.googleapis.com/auth/plus.login" /> 

लिंक्डइन, फेसबुक, ट्विटर के साथ उल्लेख spring social login और गूगल कृपया प्रदाताओं उदाहरण अनुप्रयोग में स्कोप जोड़ने की जरूरत है।

+1

कृपया एकाधिक प्रश्नों के समान उत्तरों को पोस्ट न करें। एक अच्छा जवाब पोस्ट करें, फिर डुप्लिकेट के रूप में अन्य प्रश्नों को बंद करने के लिए वोट/ध्वज दें। यदि प्रश्न डुप्लिकेट नहीं है, तो * प्रश्न के अपने उत्तर तैयार करें। * उस तथ्य को ध्यान दिए बिना, अपने बाहरी काम से बार-बार लिंक करने पर और भी सत्य। –

+0

असल में दोनों पोस्ट एक ही त्रुटि संदेश और समस्या से संबंधित हैं। जैसा कि मैंने उपरोक्त बयानों के साथ इस मुद्दे को हल किया है, इसलिए दूसरों के साथ अपना समाधान साझा करना। ठीक है, मैं इसके बाद यहां अपनी पोस्ट डुप्लिकेट नहीं करूंगा। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^