Redirect-URI-Mismatch bei Google Auth

Ich habe ein ähnliches Problem wie am Ende dieses Threads: Configure Google login for Discourse - #205. In meinem Fall besagt die Fehlermeldung von Google jedoch, dass die URI in der Anfrage die HTTP-Version meiner Seite ist, obwohl ich die Seite zu HTTPS erzwingen und diese Adresse bei Google konfiguriert habe. Meine Discourse-Seite läuft hinter einem Apache-Server als Proxy, Apache ist so eingerichtet, dass es HTTP-URLs zu HTTPS weiterleitet, und in den Discourse-Einstellungen ist force_https aktiviert.

Liege ich richtig in der Annahme, dass der Google-Fehler darauf hindeutet, dass Discourse trotz aktiviertem force_https die HTTP-Adresse anstelle der HTTPS-Adresse für die Weiterleitung sendet? Gibt es eine andere Einstellung, die ich aktivieren kann, um dies zu ändern?

Ich habe versucht, die HTTP-URL in die Client-Konfiguration bei Google aufzunehmen. Dadurch konnte ich zwar den Punkt erreichen, an dem ich ein Google-Konto auswählen und autorisieren kann, doch bei der Rückleitung zu meiner Seite erscheint die Meldung: „Entschuldigung, bei der Autorisierung Ihres Kontos ist ein Fehler aufgetreten. Vielleicht haben Sie die Autorisierung nicht genehmigt?“. Im Fehlerprotokoll steht dieser Fehler: „(google_oauth2) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected”. Es scheint also, als würde die Google-Autorisierung die Weiterleitung von der HTTP-Adresse zurück zur HTTP-Adresse als Fälschungsversuch markieren.

Ich sehe einen ähnlichen Fehler im Protokoll bei der GitHub-Autorisierung (redirect_uri_mismatch), was darauf hindeutet, dass dort wahrscheinlich ebenfalls die HTTP-Adresse für die Weiterleitung verwendet wird.

Haben Sie irgendwelche Vorschläge?

Gelöst! :joy: :man_dancing:

Falls jemand anderes auf dieses Problem stößt: Ich habe die Lösung hier gefunden: [HELP] Cannot login, error shows "BAD CSRF" - #25 by daxen

Ich habe Folgendes hinzugefügt:

RequestHeader set X-Forwarded-Proto "https"

in die vhost-Konfiguration für die SSL-Seite, damit der X-Forwarded-Proto-Header an Discourse weitergegeben wird.