So beheben Sie den Fehler redirect_uri_mismatch beim Aktivieren des Google-Logins in Discourse mit Reverse Proxy

Ich habe ein Forum mit Discourse erstellt und ihm eine private Domain, forums-test.com, auf Server A zugewiesen. Dann habe ich auf Server B (mit der Domain test.com) einen Reverse-Proxy mit Nginx eingerichtet. Alle Zugriffe auf test.com/forums/ werden an forums-test.com auf Server A weitergeleitet. Zusätzlich habe ich auf Server B die Antwortumschreibung so konfiguriert, dass alle Links, die auf forums-test.com verweisen, durch test.com/forums/ ersetzt werden. Alles funktioniert korrekt, aber als ich versuchte, die Google-Authentifizierung für das Forum zu aktivieren, stieß ich auf ein Problem, bei dem Google einen redirect_uri_mismatch-Fehler zurückgab. Dieser Fehler tritt auf, weil Google nach Abschluss der Verifizierung versucht, test.com/forums/auth/google_oauth2/callback aufzurufen, um einen temporären Token an Discourse zu übergeben. Während des Datenaustauschs zwischen Discourse und Google sendet Discourse jedoch die Callback-URL als forums-test.com/auth/google_oauth2/callback, was zu der Diskrepanz führt. Diese ausgehende Anfrage wird von Server A initiiert, und ich kann sie nicht ändern. Wie kann ich dieses Problem lösen?

Was würden Sie in Ihren Google Cloud-Einstellungen ändern, wenn Sie die URL zu forums-test.com/auth/google_oauth2/callback ändern würden?

1 „Gefällt mir“

Die Domain “forums-test.com” ist im öffentlichen Netzwerk nicht zugänglich, daher habe ich sie in meiner Google Cloud-Umgebung auf test.com/auth/google_oauth2/callback gesetzt.

1 „Gefällt mir“

Kann mir jemand helfen?