Tenho um site WordPress que é o provedor de SSO para o Discourse usando o plugin WPDiscourse. O Fórum é público, mas tem alguns grupos privados.
Quando quero adicionar botões que levam os usuários do meu site WordPress a um Grupo privado no Discourse, estou usando a URL de SSO como mencionado aqui, para que os usuários não acabem na página “Oops! Essa página não existe ou é privada.”.
Mas quando os usuários já se autenticaram via SSO no Discourse, e eles voltam e clicam nos mesmos botões, eles chegarão à página de login novamente, mesmo que tenham selecionado a caixa de seleção “Lembre-se de mim” durante o login. Idealmente, eles poderiam navegar livremente para os grupos privados depois de se autenticarem no SSO do Discourse.
Existe uma maneira melhor de configurar isso?
Pensei em adicionar um código à página de Login do WP e verificar se o usuário já fez login no Discourse e, em caso afirmativo, redirecionar para a página no argumento “return_path” na URL. Seria essa a solução alternativa? Se sim, quais funções ou chamadas de API eu poderia usar para alcançá-la?
Se os usuários já estiverem logados no seu site WordPress, isso não deveria estar acontecendo. Você pode esclarecer se os usuários para os quais isso está acontecendo estão logados no WordPress? Se eles estiverem logados, espera-se que eles sejam redirecionados silenciosamente para o URL do Discourse que você definiu no argumento return_path.
Obrigado Simon, sim, o usuário está logado no WordPress.
O estranho no meu cenário é que tenho um site WP principal (WPSite1) que é o Provedor DiscourseConnect para o Discourse usando WP Discourse,
Então, tenho um segundo site WP (WPSite2) que sincroniza o banco de dados de usuários com o WPSite1 usando o plugin WP Remote User Synch.
Não sei por que isso interferiria no comportamento esperado que você mencionou, porque quando faço login no WPSite2 e navego para o WPSite1, já estou logado no WPSite1 também.
Mas o que está acontecendo é que, mesmo após o login no WPSite1, que é o Provedor DiscourseConnect, e eu clico em um URL como https://discourse.example.com/session/sso?return_path=/g/private_group, ele me leva ao formulário de login SSO do WP.
O Cenário 2 é o caso.
Revisarei as instruções, mas acredito que tudo está configurado corretamente, pois o login SSO funciona, o problema é que a página de login não reconhece que o usuário já está autenticado.