Il login social funziona solo su desktop, ma non su dispositivi mobili (CSRF rilevato)

Ciao,
il mio forum Discourse ha un problema con gli accessi social (Google, Discord, LinkedIn):

  • Su desktop, tutti gli accessi social funzionano perfettamente.

  • Su tutti i dispositivi mobili (iOS/Android, Safari/Chrome/Firefox), falliscono.

Il processo su mobile:

  1. L’accesso social si apre normalmente.

  2. Dopo il reindirizzamento alla mia pagina, atterro solo sulla homepage, ma non sono loggato.

Nei log compare ogni volta:

(google_oauth2) Authentication failure! csrf_detected

o

(discord) Authentication failure! invalid_credentials: invalid_request

Cosa ho già controllato:

  • Configurazione OAuth corretta (il desktop funziona)

  • Cookie/cache cancellati sui dispositivi

  • Nessun browser in-app, testati browser reali

  • Indipendentemente dal browser mobile → sempre CSRF detected

Domanda:
Cosa può causare in Discourse la perdita della sessione/dei cookie solo sui dispositivi mobili che porta all’errore csrf_detected?

Grazie per qualsiasi aiuto! :folded_hands:


Si tratta di un’installazione standard? In caso contrario, hai abilitato force_https?

Ciao, sì è un’installazione standard di Discourse (installata su un server Hetzner).

Ho trovato la soluzione al problema per cui gli accessi social (Google, Discord, ecc.) falliscono sui dispositivi mobili con csrf_detected, anche se funzionano sul PC.

La causa era nel mio tema:

Uno script JavaScript personalizzato nella sezione <head> del tema stava ricaricando costantemente la pagina sui dispositivi mobili (window.location.replace).

Questo reindirizzamento forzato distruggeva il token CSRF temporaneo necessario per la validazione della sessione dopo il callback da Google/Discord.

Soluzione:

Ho rimosso completamente lo script che forzava la visualizzazione mobile dal tema.

Se avete problemi simili e utilizzate un tema personalizzato, verificate se sono in esecuzione script che attivano reindirizzamenti. Questo era il colpevole nel mio caso!