2015-02-20 10 views
15

Ten błąd występuje tylko na Heroku (produkcja), a nie lokalnie. Próbowałem zarówno:Błąd braku zasięgu w wywołaniu zwrotnym uwierzytelniania Google przy użyciu pliku Node.js/Passport

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

, a

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

czy zakres jest tablicą, lub ciąg spacjami.

Po przejściu do łącza uwierzytelniającego Google zakres IS znajduje się w adresie URL. Nie ma różnicy w tej generowanej w mojej aplikacji do produkcji na żywo.

Ale wciąż otrzymujemy:

Error 400 

Error: invalid_request 

Missing required parameter: scope 
+3

Czy próbowałeś już sprawdzić swoją aplikację Google w Google Developer Console? Zgaduję, że nie dostarczyłeś tam autoryzowanego identyfikatora URI przekierowania dla twojej aplikacji produkcyjnej (zakładając, że działa lokalnie, jest to najbardziej prawdopodobny scenariusz). Czasami błędy podawane przez Google są nieprawidłowe/niejednoznaczne (nauczyłem się tego na własnej skórze). – rdegges

Odpowiedz

6

biorę go używasz paszportu Google OAuth, a nie tylko (OpenID) moduł Paszport Google?

Jeśli korzystasz z paszportu OAuth, uwierzytelnienie w Google wymaga dodatkowego parametru zasięgu.

uchodzić za ciąg, należy zdać „OpenID” jako 1 słowo, np: Na przykład, jeśli chcesz dostęp per-pliku do użytkownika Dysku Google,

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

Źródło (-a) :

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 vs https://github.com/jaredhanson/passport-google – Sharry

+0

Dobra odpowiedź również tutaj: http://stackoverflow.com/questions/24352975/passport -google-oauth-on-localhost? lq = 1 – Sharry

0

Do komunikatu o błędzie

Error 400 
Error: invalid_request 
Missing required parameter: scope 

Trzeba dodać zakresy w formularzu

<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" /> 

Proszę odnieść spring social login z linkedin, Facebook, Twitter i Google przykład dostawcy aplikacji.

+1

Proszę nie zamieszczać identycznych odpowiedzi na wiele pytań. Napisz jedną dobrą odpowiedź, a następnie głosuj/oznacz, aby zamknąć pozostałe pytania jako duplikaty. Jeśli pytanie nie jest duplikatem, * dostosuj swoje odpowiedzi do pytania. * Tym bardziej, gdy wielokrotnie łączysz się z własną pracą zewnętrzną, nie zauważając tego faktu. –

+0

Właściwie oba posty są powiązane z tym samym komunikatem o błędzie i problemie. Jak rozwiązałem ten problem z powyższymi stwierdzeniami, dzieląc się moim rozwiązaniem z innymi. Po tym nie będę duplikować moich wpisów. –