Estou integrando o Discourse com o WordPress através do plugin WP Discourse e usando o WordPress como provedor do Discourse Connect. No entanto, estou encontrando um problema onde um usuário não autenticado que visita a instância do Discourse e clica em qualquer botão que exija login fica preso em um loop de redirecionamento infinito.
O comportamento desejado é: usuário clica no botão de login do Discourse → usuário é redirecionado para a página de login do WordPress → usuário autentica e é redirecionado de volta para a página do Discourse em que estava antes. Atualmente, não há problemas se um usuário já estiver autenticado e visitar a instância do Discourse após ser autenticado. Este erro ocorre quando um usuário não autenticado visita a instância do Discourse primeiro.
O comportamento atual é: usuário clica em um botão de login do Discourse → usuário é direcionado para https://[instância-do-discourse]/session/sso?return_path=%2Ft%2F[página-do-discourse-em-que-o-usuário-estava-antes]%2F16 → usuário é direcionado para https://[site-do-wordpress]/?sso=[token-SSO]%3D%3D&sig=[token-de-assinatura] → usuário é direcionado para https://[site-do-wordpress]/?sso=[token-SSO]%3D%3D&sig=[token-de-assinatura]&redirect_to=%2F%3Fsso%[token-SSO]%253D%253D%26sig%3D[token-de-assinatura] → e o ciclo continua recursivamente até que o navegador exiba um erro de “muitos redirecionamentos”
Não consegui encontrar um tópico com uma solução para isso, o mais próximo é
mas temos SSL habilitado em todos os lugares e este problema ocorre em todos os navegadores. Alguma sugestão sobre como corrigir este problema?
O Chrome 97 foi lançado com um bug relacionado ao tratamento de cookies durante redirecionamentos, que é conhecido por quebrar o DiscourseConnect em algumas circunstâncias. Enquanto esperamos que o Google lance uma correção, adicionamos uma solução alternativa no Discourse. Atualizar seu site Discourse para a versão mais recente deve resolver o problema. Você pode tentar e nos informar se funcionou?
(A solução alternativa foi adicionada neste commit)
Obrigado pela resposta, acabei de verificar para ter certeza de que estamos na versão mais recente, mas infelizmente o erro ainda está lá. Estamos hospedando nosso fórum com o Discourse, então ele deve estar se atualizando regularmente. O erro ainda é o mesmo de antes, há algo mais que eu deveria tentar? Existem configurações dentro da hospedagem do Discourse que podem estar causando isso?
Em seguida, me envie os logs por mensagem privada e eu darei uma olhada mais de perto no que está acontecendo. Observe que os logs não contêm nenhuma informação de identificação pessoal ou segredos.
O problema de redirecionamento descrito aqui parece semelhante ao que vi com outros sites Woocommerce no passado. Nesses casos, foi resolvido instalando o plugin WordPress que linkei.
Se esta for a causa do problema, eu me pergunto se deveríamos considerar adicionar suporte ao Woocommerce diretamente ao plugin WP Discourse.
Eu não estou tendo o problema exato que o OP descreveu, mas estou encontrando uma dificuldade com o redirecionamento de nossos usuários de volta para onde eles estavam, nos fóruns do Discourse, após o login
Apenas queria postar uma atualização aqui, descobriu-se que um dos plugins que estávamos usando estava interferindo no valor de retorno da função wp_login_url() do Wordpress. Assim que esse plugin foi removido, tudo funcionou como esperado!