La connexion sociale fonctionne uniquement sur ordinateur, mais pas sur les appareils mobiles (CSRF détecté)

Bonjour,

Mon forum Discourse a un problème avec les connexions sociales (Google, Discord, LinkedIn) :

  • Sur ordinateur de bureau, toutes les connexions sociales fonctionnent parfaitement.

  • Sur tous les appareils mobiles (iOS/Android, Safari/Chrome/Firefox), elles échouent.

Le processus sur mobile :

  1. La connexion sociale s’ouvre normalement.

  2. Après la redirection vers ma page, j’atterris uniquement sur la page d’accueil, mais je ne suis pas connecté.

Dans les journaux, il est indiqué à chaque fois :

(google_oauth2) Authentication failure! csrf_detected

ou

(discord) Authentication failure! invalid_credentials: invalid_request

Ce que j’ai déjà vérifié :

  • Configuration OAuth correcte (le bureau fonctionne)

  • Cookies/cache effacés sur les appareils

  • Aucun navigateur intégré à l’application, tests effectués avec de vrais navigateurs

  • Quel que soit le navigateur mobile → toujours csrf_detected

Question :
Qu’est-ce qui peut causer dans Discourse la perte de session/cookies et l’échec avec csrf_detected uniquement sur les appareils mobiles ?

Merci pour toute aide ! :folded_hands:


1 « J'aime »

Est-ce une installation standard ? Sinon, avez-vous activé force_https ?

Bonjour, oui c’est une installation standard de Discourse (installée sur un serveur Hetzner).

J’ai trouvé la solution au problème où les connexions sociales (Google, Discord, etc.) échouent avec csrf_detected sur les appareils mobiles, alors qu’elles fonctionnent sur PC.

La cause était dans mon thème :

Un script JavaScript personnalisé dans la section <head> du thème rechargeait constamment la page sur les appareils mobiles (window.location.replace).

Cette redirection forcée détruisait le jeton CSRF temporaire nécessaire à la validation de la session après le rappel de Google/Discord.

Solution :

J’ai supprimé du thème le script entier destiné à forcer l’affichage mobile.

Si vous rencontrez des problèmes similaires et utilisez un thème personnalisé, vérifiez si des scripts qui déclenchent des redirections sont en cours d’exécution. C’était le coupable dans mon cas !

1 « J'aime »