Errore di mismatch URI di reindirizzamento in Google Auth

Sto riscontrando un problema simile a quello alla fine di questo argomento: Configure Google login for Discourse - #205, ma nel mio caso l’errore di Google indica che l’URI nella richiesta è la versione HTTP del mio sito. Tuttavia, dato che sto forzando il sito a HTTPS, questo è l’indirizzo che ho configurato su Google. Il mio sito Discourse è protetto da un server Apache, che è configurato per reindirizzare gli URL HTTP a HTTPS, e ho attivato l’impostazione force_https nelle impostazioni di Discourse.

Ho ragione nel pensare che l’errore di Google indichi che Discourse sta inviando l’indirizzo HTTP invece di quello HTTPS per il reindirizzamento, nonostante force_https sia attivo? Esiste un’altra impostazione che posso attivare per risolvere questo problema?

Ho provato ad aggiungere l’URL HTTP alla configurazione del client su Google, e questo mi ha permesso di arrivare al punto di selezionare un account Google e autorizzarlo, ma quando viene effettuato il reindirizzamento verso il mio sito, appare il messaggio “Spiacente, si è verificato un errore durante l’autorizzazione del tuo account. Forse non hai approvato l’autorizzazione?”. Nel log degli errori compare questo messaggio: “(google_oauth2) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected”. Sembra quindi che l’autenticazione Google stia contrassegnando il reindirizzamento dall’indirizzo HTTP a quello HTTP come un tentativo di falsificazione.

Sto osservando un errore simile nel log anche per l’autenticazione GitHub, (redirect_uri_mismatch), quindi sembra che anche lì venga inviato l’indirizzo HTTP per il reindirizzamento.

Qualche suggerimento?

Risolto! :joy: :man_dancing:

Nel caso in cui qualcun altro incontri questo problema, ho trovato la soluzione qui: [HELP] Cannot login, error shows "BAD CSRF" - #25 by daxen

Ho aggiunto questo:

RequestHeader set X-Forwarded-Proto "https"

alla configurazione del vhost per il sito SSL in modo che l’intestazione X-Forwarded-Proto venga inoltrata a Discourse.