653 Stimmen

Google OAuth 2-Autorisierung - Fehler: redirect_uri_mismatch

Auf der Website https://code.google.com/apis/console Ich habe meine Anwendung registriert, generierte Kunden-ID: y Geheimnis des Kunden zu meiner App und versuchte, sich mit Google anzumelden. Leider bekam ich die Fehlermeldung:

Error: redirect_uri_mismatch
The redirect URI in the request: http://127.0.0.1:3000/auth/google_oauth2/callback did not match a registered redirect URI

scope=https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
response_type=code
redirect_uri=http://127.0.0.1:3000/auth/google_oauth2/callback
access_type=offline
approval_prompt=force
client_id=generated_id

Was bedeutet diese Meldung, und wie kann ich sie beheben? Ich verwende den Edelstein omniauth-google-oauth2 .

3voto

Alexandru Burca Punkte 377

Meine Meinung dazu:
Wenn Sie die Google_Client Bibliothek vergessen Sie nicht, die JSON-Datei auf Ihrem Server zu aktualisieren, nachdem Sie die Redirect-URIs aktualisiert haben.

3voto

omair azam Punkte 500

Ich habe Frontend-App und Backend-Api.

Von meinem Backend-Server testete ich, indem ich die Google-Api anschlug und mit diesem Fehler konfrontiert wurde. Während meiner ganzen Zeit habe ich mich gefragt, warum ich die redirect_uri da dies nur das Backend betrifft, ist es für das Frontend sinnvoll.

Was ich tat, war, verschiedene redirect_uri (obwohl gültig) vom Server (in der Annahme, dass dies nur ein Platzhalter ist, muss er nur bei Google registriert werden), aber meine Frontend-URL, die den Token-Code erstellt hat, war anders. Also, wenn ich diesen Code in meinem Server-Seite-Tests (für die redirect-uri war anders) übergeben wurde, war ich diesen Fehler konfrontiert.

Machen Sie also nicht diesen Fehler. Stellen Sie sicher, dass Ihr Frontend redirect_uri mit der Ihres Servers übereinstimmt, da Google sie zur Überprüfung der Authentizität verwendet.

2voto

Subrata Fouzdar Punkte 654

Der Hauptgrund für dieses Problem wird nur von Chrome kommen und Chrome behandelt WWW und nicht www anders, je nachdem, wie Sie Ihre URL in den Browsern eingegeben und es sucht von Google und zeigt direkt die Ergebnisse, so dass die Umleitung URL gesendet wird in einem anderen Fall anders

enter image description here

Fügen Sie alle möglichen Kombinationen hinzu, um die genaue URL zu finden, die von Fiddler gesendet wurde. Das 400-Fehler-Popup gibt Ihnen nicht die genauen http- und www-Informationen.

2voto

David L Punkte 978

Ich möchte die Antwort von @Bazyl ergänzen: In der Nachricht, die ich erhalten habe, wurde der URI erwähnt "http://localhost:8080/" (was natürlich eine interne Google-Konfiguration zu sein scheint). Ich habe den autorisierten URI für diesen geändert, "http://localhost:8080/" und die Meldung wurde nicht mehr angezeigt... Und das Video wurde hochgeladen... Die APIS-Dokumentation ist SEHR lahm... Jedes Mal, wenn ich etwas mit Google Apis zum Laufen bringe, bin ich einfach "glücklich", aber es fehlt eine gute Dokumentation dazu.... :( Ja, ich habe es zum Laufen gebracht, aber ich verstehe immer noch nicht, warum es nicht geklappt hat, oder warum es funktioniert hat... Es gab nur EINE Stelle, um die URI im Web zu bestätigen, und sie wurde in die client_secrets.json kopiert... Ich verstehe nicht, ob es eine DRITTE Stelle gibt, an die man dieselbe URI schreiben sollte... Ich finde nicht nur die Dokumentation, sondern auch das GUI-Design von Googles api ziemlich lahm...

2voto

shubhamjr Punkte 99

In meinem Fall lautet die redirect-uri http://127.0.0.1:5000/auth/google/callback
und ich fordere weiterhin durch http://localhost:5000/auth/google
Vergewissern Sie sich, wenn Sie localhost o 127.0.0.1 .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X