Fiz algumas horas de pesquisa sobre o meu problema e acho que estou perto, mas talvez precise de um pequeno empurrão na direção certa.
Essencialmente, estou tentando integrar o Discourse como uma implementação headless em meu projeto React, que já contém usuários autenticados em seu próprio banco de dados.
Para fazer isso, quando o usuário fizer login na página React, ele realizará um SSO para autenticar o usuário com a API do Discourse, para que possamos chamar as funções apropriadas e assim por diante.
Então, primeiro estou buscando da minha URL do Discourse e impedindo quaisquer redirecionamentos como este:
const response = await fetch('https://forum.mysite.com/session/sso', {
method: 'GET',
redirect: 'manual', // Impede o acompanhamento automático de redirecionamentos
});
Depois, faço toda a validação e envio o Payload com as informações do usuário para o backend usando:
const loginResponse = await fetch(newurl.toString(), {
method: 'GET',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
redirect: 'manual',
});
E a formatação, assinatura e tudo mais parecem bons. Mas dá um erro. Então, comentei isso e peguei a URL gerada e a copiei no meu navegador para ver o que estava acontecendo e recebo isto:
Log SSO detalhado: Nonce incorreto, foi gerado em uma sessão de navegador diferente ou expirou add_groups: admin: avatar_force_update: avatar_url: bio: card_background_url: confirmed_2fa: e
Então, depois de pesquisar um pouco, acho que essas respostas estão perto de me ajudar, mas ainda não estou muito claro sobre o que mudar para minha configuração e force_https não parece ser uma configuração que possamos manipular mais (nem sei o que faz):
Sinto que pode ser causado por diferentes sessões de navegador, mas não sei. Acho que estou perto de conseguir isso, só preciso de um pequeno empurrão. Qualquer informação seria útil. Obrigado!
