Logout não funciona na configuração Oauth

Olá,

Temos um pequeno problema onde pressionar o botão de logout não resulta no usuário sendo deslogado.

Nossa configuração

Temos um frontend em Vue.js, onde você pode se autenticar com o Auth0. Após fazer login, você pode pressionar o botão do quadro de mensagens e será redirecionado para nosso fórum Discourse, onde, mais uma vez, será autenticado com o Auth0.

Instalação
Segui este tutorial.

Descrição/reprodução do bug

Quando você pressiona logout no fórum Discourse, aparece brevemente um modal com um botão de atualizar, mas em seguida a página é automaticamente atualizada e o fórum é carregado sem que o usuário tenha sido deslogado.

Aqui está uma captura de tela das chamadas do navegador. Não tenho certeza sobre as chamadas de erro em vermelho, pois parecem ser acionadas após as chamadas de erro em vermelho novamente e, em seguida, parecem ter sucesso.

Não consigo encontrar nada nos logs de depuração relacionado a isso.

Comportamento esperado

O usuário deve ser deslogado do Auth0, fazendo com que a página seja redirecionada para a página de login do Auth0.

Hmmm, o problema é que os usuários são desconectados, mas logo em seguida são automaticamente reconectados. Uma solução é definir a configuração de redirecionamento ao sair para um site externo, para que as pessoas não sejam reconectadas imediatamente. Ou talvez você possa até definir para /login :thinking:

Vou refletir sobre isso nos próximos dias e ver se conseguimos chegar a uma solução melhor. É confuso ter um botão de sair que não faz… nada.

Isso só ocorre ao usar:

  • Single sign-on / uma única estratégia de autenticação com logins locais desativados
  • “login required” ativado

Talvez possamos adicionar um aviso no painel quando ambas as condições forem atendidas, informando ao usuário para configurar corretamente o redirecionamento de logout em outro lugar? É uma configuração relativamente incomum, na qual o administrador pode gastar apenas 5 segundos extras configurando o endereço de logout.

@david Redirecionar para a página de login é uma boa solução, obrigado! Concordo com @Falco de que você pode precisar de um aviso para configurar isso, caso contrário, isso causa comportamentos estranhos!

Ótimo!

Como o @Falco disse, isso é bastante raro, mas acho que vou configurar o redirecionamento padrão de logout para /login em sites com login_required — simples e direto, e assim não dependemos de que as pessoas realmente leiam um aviso.

/login não aciona o login automático quando o login é necessário + SSO?

Correto. Um pouco contra-intuitivo, mas é assim que sempre funcionou para SSO e, portanto, é o mesmo para esse novo modo de autenticador único.

Abri um PR para essa questão - ele também resolve o mesmo problema para sites SSO