Acho que isso pode ser um caso semelhante de um problema ocorrido há alguns anos: Discourse doesn't redirect to return_sso_url after user logs in on private site - #8 by vinothkannans
Tenho um aplicativo em Rails que usa o omniauth-discourse como método de login, o que funciona bem.
Em seguida, minha instância do Discourse usa SSO para outro aplicativo que eu mantenho.
Dessa forma, o Discourse é meu provedor de SSO, mas também está usando SSO com um aplicativo diferente.
Quando um usuário já está logado no Discourse, o redirecionamento de volta para o aplicativo original funciona perfeitamente.
Quando um usuário não está logado, ele é direcionado ao fluxo de SSO, mas a URL de retorno sempre é definida como return_sso_url=https://forum.snap.berkeley.edu/session/sso_login. Parece que isso deveria ser a URL da solicitação original, não é?
- O usuário clica no botão de entrar no primeiro aplicativo, o que o redireciona para uma URL que, por fim, se parece com isto:
https://forum.snap.berkeley.edu/session/sso_provider?sso=nonce=4...f&return_sso_url=https://www.snapcon.org/accounts/auth/discourse/callback &sig=1...6(Decodifiquei para maior clareza) - O Discourse, então, redireciona para o endpoint do Discourse do segundo aplicativo:
https://snap.berkeley.edu/api/v1/discourse-sso?sig=f...d&sso=nonce=6...1&return_sso_url=https://forum.snap.berkeley.edu/session/sso_login - O usuário faz login, mas é levado apenas para a página inicial do fórum.
Existe alguma solução alternativa, ou isso poderia ser resolvido em uma atualização?
Reconheço que estou usando o Discourse apenas como um proxy, mas, no momento, é a melhor ferramenta que tenho para integrar esses dois aplicativos.
Obrigado!