Google OAuth 2 authorization - Error redirect_uri_mismatch
Der Fehler “Google OAuth 2 authorization - Error: redirect_uri_mismatch” tritt auf, wenn die von einer Anwendung oder Website eingereichte Redirect-URI (die Adresse, an die Google den Benutzer nach der OAuth 2.0-Authentifizierung zurückleitet) nicht mit der Redirect-URI übereinstimmt, die im Google-API-Dashboard für das OAuth 2.0-Projekt registriert ist.
Was bedeutet der Fehler?
Der Fehler tritt auf, wenn es eine Diskrepanz zwischen der Redirect-URI gibt, die von deiner Anwendung gesendet wird, und der, die im Google-API-Dashboard konfiguriert wurde. Google überprüft diese URI als Sicherheitsmaßnahme, um sicherzustellen, dass der Benutzer nur an die korrekte URL zurückgeleitet wird.
Mögliche Ursachen:
- Falsche Redirect-URI in der Anwendung: Die von deiner Anwendung gesendete URI entspricht nicht derjenigen, die im Google-API-Projekt eingetragen wurde.
- HTTP/HTTPS-Probleme: Manchmal gibt es einen Unterschied zwischen der Verwendung von HTTP und HTTPS (zum Beispiel wurde HTTPS im Google-Dashboard eingetragen, aber die Anwendung verwendet HTTP).
- Trailing Slash-Probleme: Eine häufige Ursache ist, dass die Redirect-URI entweder mit oder ohne einen Schrägstrich (“/”) am Ende konfiguriert wurde, und der andere Fall verwendet wird.
- Subdomain-Unterschiede: Manchmal wird eine falsche Subdomain verwendet, zum Beispiel
www.example.com
stattexample.com
oder umgekehrt. - Falsche Umgebungen: Du verwendest möglicherweise unterschiedliche Redirect-URIs in verschiedenen Umgebungen (z. B. lokal, Staging, Produktion), und die korrekte URI ist nicht bei Google registriert.
Schritte zur Fehlerbehebung:
1. Überprüfen und Aktualisieren der Redirect-URI im Google-API-Dashboard
- Gehe zu deinem Google Cloud Console und wähle das Projekt aus, mit dem deine Anwendung verknüpft ist.
- Navigiere zu APIs & Services > Credentials.
- Finde deinen OAuth 2.0-Client und bearbeite dessen Einstellungen.
- Überprüfe im Abschnitt “Authorized redirect URIs”, ob die URI mit der von deiner Anwendung gesendeten exakt übereinstimmt.
- Exaktheit der URI sicherstellen: Es muss exakt übereinstimmen, einschließlich Protokoll (http/https), Domain, und möglicher Schrägstriche.
- Füge die korrekte Redirect-URI hinzu, falls sie nicht korrekt eingetragen ist.
2. Überprüfe den Redirect-URI in deiner Anwendung
- Gehe durch den Code oder die Konfigurationsdateien deiner Anwendung und stelle sicher, dass die Redirect-URI korrekt ist.
- Vergewissere dich, dass sie genau mit der URI übereinstimmt, die du im Google-API-Dashboard konfiguriert hast.
3. Überprüfe HTTP vs. HTTPS
- Wenn du im Google-Dashboard
https://
für die Redirect-URI konfiguriert hast, stelle sicher, dass deine Anwendung auchhttps://
verwendet und nichthttp://
.
4. Trailing Slash (“/”) beachten
- Überprüfe, ob deine Redirect-URI im Google-Dashboard einen Schrägstrich (“/”) am Ende hat. Zum Beispiel:
https://example.com/callback/
ist nicht dasselbe wiehttps://example.com/callback
. Beide Varianten sollten konsistent sein.
5. Testen verschiedener Umgebungen
- Falls du in verschiedenen Umgebungen arbeitest (z. B. lokal, Testumgebung, Produktion), stelle sicher, dass jede Umgebung ihre eigene korrekte Redirect-URI verwendet und dass sie alle in den Google-API-Einstellungen eingetragen sind.
6. Mehrere Redirect-URIs konfigurieren
- Falls deine Anwendung verschiedene Redirect-URIs für verschiedene Umgebungen (z. B.
https://localhost/callback
für lokal,https://prod.example.com/callback
für Produktion) benötigt, kannst du mehrere URIs im Google-API-Dashboard eintragen. Dies hilft, den Fehler bei unterschiedlichen Umgebungen zu vermeiden.
7. Prüfe Logs und Fehlerberichte
- Falls der Fehler weiterhin besteht, schaue in die Logs deiner Anwendung, um die tatsächliche Redirect-URI zu überprüfen, die an Google gesendet wird. Dies kann dir helfen, Missverständnisse zu vermeiden und die richtige URI herauszufinden.
Beispiel für die Behebung:
Wenn der Fehler auftritt, weil die Anwendung https://example.com/oauth2callback
verwendet, aber im Google-API-Dashboard https://www.example.com/oauth2callback/
hinterlegt ist, könntest du folgende Schritte durchführen:
- Entweder das
/
am Ende in deiner Anwendung hinzufügen oder - Im Google-API-Dashboard die Redirect-URI auf
https://example.com/oauth2callback
ändern.
Zusammenfassung:
Der Fehler “redirect_uri_mismatch” tritt auf, wenn die Redirect-URI, die von deiner Anwendung gesendet wird, nicht mit der im Google-API-Dashboard hinterlegten URI übereinstimmt. Die Behebung besteht darin, sicherzustellen, dass die Redirect-URI in der Anwendung und im Google-API-Dashboard exakt übereinstimmt, einschließlich Protokoll, Domain und möglichen Schrägstrichen.