El inicio de sesión social solo funciona en escritorio, pero no en dispositivos móviles (CSRF detectado)

Hola,

Mi foro de Discourse tiene un problema con los inicios de sesión sociales (Google, Discord, LinkedIn):

  • En escritorio, todos los inicios de sesión sociales funcionan perfectamente.

  • En todos los dispositivos móviles (iOS/Android, Safari/Chrome/Firefox), fallan.

El flujo en móvil:

  1. El inicio de sesión social se abre normalmente.

  2. Después de la redirección de vuelta a mi sitio, solo llego a la página de inicio, pero no he iniciado sesión.

En los registros aparece cada vez:

(google_oauth2) Authentication failure! csrf_detected

o

(discord) Authentication failure! invalid_credentials: invalid_request

Lo que ya he comprobado:

  • Configuración de OAuth correcta (el escritorio funciona)

  • Cookies/caché borradas en los dispositivos

  • No se usan navegadores dentro de la aplicación, se probaron navegadores reales

  • No importa qué navegador móvil → siempre se detecta CSRF

Pregunta:

¿Qué puede estar causando en Discourse que los inicios de sesión sociales solo en dispositivos móviles pierdan la sesión/cookies y fallen con csrf_detected?

¡Gracias por cualquier ayuda! :folded_hands:


1 me gusta

¿Esta es una instalación estándar? Si no lo es, ¿tiene force_https habilitado?

Hola, sí, es una instalación estándar de Discourse (instalada en un servidor Hetzner).

He encontrado la solución al problema por el cual los inicios de sesión sociales (Google, Discord, etc.) fallan con csrf_detected en dispositivos móviles, aunque funcionan en PC.

La causa estaba en mi tema (Theme):

Un script de JavaScript personalizado en la sección <head> del tema estaba recargando constantemente la página en dispositivos móviles (window.location.replace).

Esta redirección forzada destruía el token CSRF temporal necesario para la validación de la sesión después de la devolución de llamada de Google/Discord.

Solución:

Eliminé el script completo para forzar la vista móvil del tema.

Si tienen problemas similares y utilizan un tema personalizado, comprueben si hay scripts ejecutándose que provoquen redirecciones. ¡Ese fue el culpable en mi caso!

1 me gusta