Estou enfrentando um desafio com a lógica de logout.
Estamos usando a configuração do Auth0 com o Discourse OAuth2 e o problema é que, quando acionamos o logout usando currentUser.destroySession(), a sessão do Discourse é encerrada, pois o usuário é desconectado, mas os dados do OAuth ainda estão de alguma forma em cache?
O que quero dizer aqui?
Contexto: ao usar SSO, você esperaria que, quando o usuário fizesse logout do seu site, da próxima vez que tentasse fazer login novamente, ele seria redirecionado do seu site para a página do SSO, onde poderia inserir suas credenciais e, uma vez autenticado, o usuário seria redirecionado de volta ao seu site com uma sessão ativa.
Portanto, usando este contexto acima, o Discourse não parece desconectar completamente o usuário, pois sempre que faço logout do Discourse, funciona bem, mas sempre que tento fazer login novamente no meu site do fórum, o Discourse não aciona a página do SSO novamente, de alguma forma ele ainda se lembra da conta SSO anteriormente logada, então ele seleciona e faz login automaticamente o usuário, o que é muito estranho.
E isso basicamente significaria que estou preso com esse usuário, não consigo mudar para uma conta de usuário diferente, a menos que, talvez, eu use o modo anônimo ou um navegador completamente diferente ![]()
Expectativa: Assim que eu clicar em sair, na próxima tentativa de fazer login novamente, devo ser levado à minha página de SSO do Auth0, onde posso fazer o necessário e, em seguida, serei redirecionado de volta ao fórum do Discourse.
Parece ser um problema com currentUser.destroySession() em como ele limpa a sessão mais os dados do OAuth?
Também testei fazendo manualmente uma chamada de API para destruir a sessão do usuário, ainda os mesmos resultados, sem melhorias:
fetch(`https://MY_FORUM.discourse.group/admin/users/USER_ID/log_out`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Api-Key': 'API_KEY',
'Api-Username': 'ADMIN_USERNAME',
},
})
Por favor, compartilhe insights sobre isso se você tiver uma ideia de como corrigir/abordar o logout ao usar OAuth.