Login Social funciona apenas no desktop, mas não em dispositivos móveis (CSRF detectado)

Olá,

Meu fórum do Discourse está com um problema nos logins sociais (Google, Discord, LinkedIn):

  • Em desktops, todos os logins sociais funcionam perfeitamente.

  • Em todos os dispositivos móveis (iOS/Android, Safari/Chrome/Firefox), eles falham.

O fluxo no celular:

  1. O login social abre normalmente.

  2. Após o redirecionamento de volta para o meu site, eu caio apenas na página inicial, mas não estou logado.

Nos logs, sempre aparece:

(google_oauth2) Authentication failure! csrf_detected

ou

(discord) Authentication failure! invalid_credentials: invalid_request

O que eu já verifiquei:

  • Configuração OAuth correta (desktop funciona)

  • Cookies/cache limpos nos dispositivos

  • Nenhum navegador in-app, testei navegadores reais

  • Não importa qual navegador móvel → sempre CSRF detectado

Pergunta:
O que no Discourse pode fazer com que os logins sociais apenas em dispositivos móveis percam a sessão/cookies e falhem com csrf_detected?

Agradeço qualquer ajuda! :folded_hands:


Esta é uma instalação padrão? Se não, você tem o force_https ativado?

Olá, sim, é uma instalação padrão do Discourse (instalada em um servidor Hetzner).

Encontrei a solução para o problema em que os logins sociais (Google, Discord, etc.) falham com csrf_detected em dispositivos móveis, embora funcionem no PC.

A causa estava no meu Tema:

Um script JavaScript personalizado na seção <head> do tema estava recarregando constantemente a página em dispositivos móveis (window.location.replace).

Esse redirecionamento forçado destruía o token CSRF temporário necessário para a validação da sessão após o callback do Google/Discord.

Solução:

Removi o script inteiro de forçar a visualização móvel do tema.

Se vocês tiverem problemas semelhantes e estiverem usando um Tema Personalizado, verifiquem se há scripts sendo executados que estejam acionando redirecionamentos. Esse foi o culpado no meu caso!