Configuração DiscourseConnect - Sistema oficial de Single-Sign-On para Discourse (sso)

Parece que o que você está fazendo é usar o Discourse como provedor de SSO para o WordPress. Essa abordagem está descrita aqui: Use o Discourse como um provedor de identidade (SSO, DiscourseConnect). O plugin Discourse WordPress tem opções para usar o WordPress como provedor de SSO para o Discourse, ou para usar o Discourse como um provedor de identidade para o WordPress. Usar o mesmo nome para ambas as abordagens leva a alguma confusão.

Eu ficaria tentado a usar o WordPress como o provedor de identidade para este caso. Com essa abordagem, os usuários criarão contas em seu site WordPress e, em seguida, farão login no Discourse com suas credenciais do WordPress. Uma coisa a ter em mente com essa abordagem é que isso significa que os usuários só poderão fazer login no Discourse através do WordPress, não será possível criar uma conta no Discourse sem já ter uma conta no WordPress. Acho que essa é a configuração apropriada ao integrar o Discourse com um site de membros do WordPress.

Quando o WordPress é usado como provedor de identidade para o Discourse, existem algumas funções utilitárias que são úteis para definir as associações de grupo do Discourse de um usuário com base em sua atividade no WordPress. Essas funções estão descritas aqui: Gerenciar associação de grupo no Discourse com WP Discourse SSO.

Voltando à sua pergunta original:

Faz um tempo que não olho o código do Cliente DiscourseConnect do plugin WordPress, mas acho que o que você está pedindo é mais ou menos como esse código é esperado funcionar. Se um usuário tiver uma conta no Discourse, ele só precisa clicar no link “Fazer login através do Discourse” no WordPress e uma conta será criada para ele.

Isso seria tecnicamente possível ao usar o WordPress como Cliente DiscourseConnect, mas a menos que algo tenha mudado, você não poderá usar os métodos add_user_to_discourse_group e remove_user_from_discourse_group que estão descritos na documentação que linkei. Você precisaria fazer algo como configurar um Webhook do Discourse que fosse acionado quando um usuário fosse adicionado a um grupo do Discourse, então adicionar algum código no WordPress para processar esse webhook. Para sincronizar grupos do WordPress para o Discourse, você precisaria fazer uma chamada de API para o Discourse para atualizar os grupos de um usuário quando houvesse uma mudança no WordPress. Portanto, algo que seria bastante fácil de realizar se você usar o WordPress como provedor do DiscourseConnect pode ser um tanto complicado se você usar o WordPress como cliente do DiscourseConnect.

1 curtida