Error de desajuste en la URI de redirección en Google Auth

Tengo un problema similar al que aparece al final de este tema: Configure Google login for Discourse - #205, pero en mi caso el error de Google indica que la URI en la solicitud es la versión HTTP de mi sitio. Sin embargo, como estoy forzando el sitio a HTTPS, esa es la dirección que configuré en Google. Mi sitio de Discourse está detrás de un servidor Apache como proxy, y Apache está configurado para redirigir las URL HTTP a HTTPS; además, tengo force_https activado en la configuración de Discourse.

¿Es correcto asumir que el error de Google indica que Discourse está enviando la dirección HTTP en lugar de la HTTPS para la redirección, a pesar de que force_https está activado? ¿Hay alguna otra configuración que pueda activar para cambiar eso?

He intentado agregar la URL HTTP a la configuración del cliente en Google, lo que me permitió llegar al punto de seleccionar una cuenta de Google y autorizarla, pero al redirigir de vuelta a mi sitio, aparece el mensaje: “Lo sentimos, hubo un error al autorizar tu cuenta. ¿Quizás no aprobaste la autorización?”. En el registro de errores aparece este mensaje: “(google_oauth2) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected”. Parece que la autenticación de Google está marcando la redirección desde la dirección HTTP de vuelta a la dirección HTTP como un intento de falsificación.

Estoy viendo un error similar en el registro de la autenticación de GitHub: (redirect_uri_mismatch), por lo que parece que también está enviando la dirección HTTP para el redirect_api allí.

¿Alguna sugerencia?

¡Lo solucioné! :joy: :man_dancing:

Por si a alguien más le ocurre este problema, encontré la solución aquí: [HELP] Cannot login, error shows "BAD CSRF" - #25 by daxen

Añadí lo siguiente:

RequestHeader set X-Forwarded-Proto "https"

a la configuración del vhost para el sitio SSL, de modo que el encabezado X-Forwarded-Proto se transmita a Discourse.