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?