Estamos utilizando nossa própria aplicação como provedor de SSO para o Discourse e enfrentamos um problema ao vincular usuários a tópicos privados em nosso fórum Discourse a partir da nossa aplicação: a autenticação só é acionada ao clicar no botão “Login”.
- Usamos nosso próprio sistema como provedor de SSO para o Discourse.
- Temos uma mistura de páginas públicas e privadas no Discourse, então não configuramos o
login_required. - Se um usuário se autentica em nosso sistema e é redirecionado para a URL raiz do Discourse, ele vê as categorias públicas, mas não está logado.
- Se um usuário se autentica em nosso sistema e é redirecionado para a URL do Discourse +
/login, ele é logado corretamente e redirecionado para a URL raiz do Discourse. - Se um usuário se autentica em nosso sistema e é redirecionado para a URL de uma categoria ou tópico privado no Discourse, ele vê uma página pedindo para fazer login. Se clicar em “Login”, é automaticamente logado e visualiza a categoria/tópico.
Esse último caso é o problemático. Acredito que uma das seguintes soluções seria adequada:
- Poderíamos vincular a
ourdiscourse.com/c/some-category?login=truee uma verificação de autenticação seria realizada: se o usuário estiver logado, o tópico é exibido; caso contrário, ele é enviado ao nosso provedor de SSO e redirecionado de volta ao tópico após o login. - Poderíamos vincular a
ourdiscourse.com/login?redirect=c/some-categorye uma verificação de autenticação seria realizada: se bem-sucedida, redireciona para a página indicada na string de consulta; se não, redireciona para o provedor de SSO e, após a autenticação bem-sucedida, redireciona de volta para a página na string de consulta. - Poderíamos vincular diretamente a
ourdiscourse.com/c/some-category, e, se for uma página privada, o Discourse realizaria uma verificação de autenticação: se bem-sucedida, leva à categoria; se não, redireciona para o provedor de SSO e, em seguida, de volta à página.
Obrigado!
(Já havia postado a questão aqui — peço desculpas pelas múltiplas postagens, mas pensei que talvez um novo tópico pudesse gerar mais respostas).