O plugin WP Discourse permite configurar o DiscourseConnect no WordPress, para que seus usuários possam usar sua conta do WordPress para fazer login no Discourse, ou sua conta do Discourse para fazer login no WordPress. Antes de configurar o DiscourseConnect, você primeiro precisa instalar o plugin WP Discourse no WordPress e conectá-lo ao seu Discourse. Se você está pronto para começar, assista a este vídeo curto ou siga as instruções abaixo.
Próximo passo
Depois de configurar o DiscourseConnect, você pode querer conferir os seguintes tópicos:
Instruções
Definindo uma Chave Secreta
Seja configurando o WP Discourse como Provedor ou Cliente do DiscourseConnect, você precisa definir uma chave secreta. Acesse a aba „Chave Secreta do DiscourseConnect“ e insira uma string de texto (números, letras e símbolos são permitidos), com pelo menos 10 caracteres. Use as mesmas regras para criar essa chave que você usaria para criar uma senha forte. Certifique-se de salvá-la ao terminar.
Em seguida, abra as Configurações do Site do Discourse (no painel de Admin) e pesquise por „discourse connect“. Uma das configurações próximas ao topo será discourse connect secret. Cole a chave secreta que você definiu no WP Discourse ali e clique no ícone verde de confirmação.
Fazendo login no Discourse com WordPress (Provedor do DiscourseConnect)
Certifique-se de que seu WP Discourse está conectado ao seu Discourse e que sua chave secreta está definida (
) antes de seguir estas instruções.
Para permitir que seus usuários façam login no Discourse usando as credenciais do WordPress, você precisa configurar o WP Discourse como Provedor do DiscourseConnect. Acesse a aba Provedor do DiscourseConnect nas configurações do WP Discourse, selecione a caixa de seleção Ativar Provedor do DiscourseConnect e salve suas configurações.
Em seguida, vá para as Configurações do Site do Discourse e digite „discourse connect“ na caixa de pesquisa para ver todas as configurações do DiscourseConnect do Discourse. Primeiro, defina o discourse connect url como a URL do seu WordPress. A etapa final é selecionar ativar discourse connect. Certifique-se de estar pronto antes de selecionar isso, pois, ao fazer isso, seus usuários só poderão fazer login no Discourse usando o WordPress.
Depois de ativar o discourse connect no Discourse, para garantir que está configurado corretamente, abra uma janela anônima no seu navegador. Mantenha sua janela normal (não anônima) do navegador logada em uma conta de administrador (caso algo dê errado e você precise reverter as configurações). Na janela anônima, você notará que o botão „Inscrever-se“ do Discourse não aparece mais. Clique no botão „Fazer login“. Você deve ver uma tela de login do WordPress. Insira suas credenciais do WordPress para fazer login. Você será redirecionado de volta ao Discourse e estará logado.
Se algo der errado ou você notar que algo não está certo, volte para sua janela normal do navegador e desative ativar discourse connect para permitir que seus usuários façam login no Discourse normalmente. Se, por algum motivo, você não estiver mais logado em sua conta de administrador na janela normal do navegador, consulte a seção „Desativar o DiscourseConnect pelo Console do Discourse“ abaixo para recuperar o acesso ao seu Discourse.
Verificação de e-mail
O Discourse espera que todos os endereços de e-mail dos usuários sejam verificados, e o WordPress não obriga os usuários a verificarem seus endereços de e-mail. Em uma configuração padrão do WordPress, é bastante fácil verificar o e-mail de um usuário durante o processo de registro, mas se um site estiver usando um plugin que cria um formulário de registro no front-end — por exemplo, o formulário de registro que pode ser adicionado com o WooCommerce —, o plugin WP Discourse não consegue verificar o e-mail do usuário.
Se os e-mails dos usuários não estiverem sendo verificados no WordPress, antes que um usuário do WordPress possa fazer login no fórum, ele precisará responder a um aviso de verificação de e-mail enviado pelo Discourse. O plugin possui alguns filtros que podem ser usados para substituir esse comportamento. Confira o código, começando aqui, para mais detalhes.
Remover a flag require_activation
Se você tem certeza de que o WordPress está autenticando endereços de e-mail, pode informar ao Discourse que ele não precisa fazer isso. Para remover completamente a flag require_activation, adicione algo como isto ao seu WordPress (por exemplo, no arquivo functions.php do seu tema):
// Substitua 'my_prefix' pelo prefixo do seu site.
add_filter( 'discourse_email_verification', 'my_prefix_discourse_email_verification' );
function my_prefix_discourse_email_verification( $require_activation ) {
return false;
}
Para remover a flag require_activation para usuários específicos, use algo como isto:
// Substitua 'my_prefix' pelo prefixo do seu site.
add_filter( 'discourse_email_verification', 'my_prefix_discourse_email_verification', 10, 2 );
function my_prefix_discourse_email_verification( $require_activation, $user_id ) {
$user = get_userdata( $user_id );
if ( /* alguma condição testada contra $user */ ) {
return true;
}
return false;
}
Webhook de Dados do Usuário
Este Webhook existe por razões históricas — agora é possível preencher automaticamente o campo Nome do Discourse usando a opção do Provedor do DiscourseConnect „Criar ou Sincronizar Usuários do Discourse no Login“.
O webhook Atualizar Dados do Usuário (no painel de configurações „Webhooks“) pode ser usado quando o WordPress é o Provedor do DiscourseConnect para seu Discourse. O webhook preenche automaticamente o campo Nome do Discourse do usuário no WordPress.
Criando um Link de Login do DiscourseConnect
Se você tiver a opção Provedor do DiscourseConnect ativada, pode adicionar um link de login do DiscourseConnect ao seu site WordPress criando um link com a seguinte estrutura:
<a href="https://discourse.example.com/session/sso?return_path=/">Comunidade</a>
Defina o valor de return_path para a página do seu fórum para a qual você deseja que o usuário seja direcionado. Você pode adicionar um link de login SSO a um menu do WordPress adicionando uma URL com essa estrutura como um Link Personalizado na seção Menus do painel do WordPress.
Fazendo login no WordPress com Discourse (Cliente do DiscourseConnect)
Para ativar seu site como um Cliente do DiscourseConnect para o Discourse, clique na aba Cliente do DiscourseConnect. Nessa página, selecione as opções Ativar Cliente do DiscourseConnect e Adicionar Link de Login.
Agora, vá para a página de Admin/Configurações do Discourse e pesquise por „discourse connect“ para ver todas as opções do DiscourseConnect.
- selecione a configuração „ativar provedor do discourse connect“
- copie sua
Chave Secreta do DiscourseConnectdo WordPress para o campo „secret“ da configuração „discourse connect provider secrets“ do Discourse. No campo „domain“ dessa configuração, insira o domínio do seu site WordPress. Em seguida, clique no ícone verde de confirmação para salvar suas configurações.
Ao concluir, a configuração „discourse connect provider secrets“ no Discourse deve parecer com isto (com o domínio definido como o domínio do seu WordPress):
O Discourse agora deve estar funcionando como um provedor do DiscourseConnect para seu site WordPress.
Abra seu site WordPress em uma janela anônima no seu navegador. Quando você for para sua página de login, deverá ver um link „Fazer login com Discourse“ abaixo do formulário de login. Clique nele e você será levado ao formulário de login do Discourse. Faça login lá e será redirecionado de volta para a página de login do WordPress com um aviso dizendo que você precisa sincronizar sua conta com o Discourse. Siga as instruções no aviso para vincular suas contas e você deverá conseguir fazer login no seu site WordPress através do Discourse.
Observação: esse comportamento afeta apenas usuários que já possuem contas tanto no WordPress quanto no Discourse. Novas contas do WordPress criadas através do DiscourseConnect do Discourse poderão fazer login livremente no WordPress na primeira vez em que clicarem no link „Fazer login com Discourse“. Para facilitar o login de usuários com contas existentes tanto no seu site WordPress quanto no seu fórum Discourse através do Discourse, selecione a caixa de seleção Sincronizar Usuários Existentes por E-mail na aba de opções Cliente do DiscourseConnect.
Sincronizando o Logout do Discourse
Quando o DiscourseConnect está ativado, o logout do Discourse pode ser sincronizado com seu site WordPress adicionando o home_url do seu site com o parâmetro de consulta request=logout à configuração do Site do Discourse logout redirect. A configuração está na seção de configurações do Discourse em /admin/site_settings/category/users. Aqui está um exemplo de URL „logout redirect“:
http://example.com/?request=logout
Solução de Problemas
Se você estiver tendo problemas ao usar o WordPress como provedor do DiscourseConnect para seu fórum, as primeiras coisas a verificar são:
- que as chaves secretas do DiscourseConnect definidas no WordPress e no Discourse são as mesmas
- certifique-se de ter selecionado
Ativar Provedor do DiscourseConnectno seu site WordPress - certifique-se de ter inserido a URL correta do
discourse connectno Discourse.
„Erro de Login“ ao usar o DiscourseConnect
Se os usuários estiverem recebendo uma mensagem de „Erro de Login“ ao tentar fazer login no Discourse, consulte:
Debug and fixing common DiscourseConnect issues.
Desativando o DiscourseConnect
Se o DiscourseConnect não estiver funcionando para você, você pode desativá-lo desabilitando a configuração do site ativar discourse connect. Se você não estiver mais logado em uma conta de administrador em algum lugar para desativá-lo, não se preocupe, existem algumas maneiras de voltar para desativá-lo.
Login via /users/admin-login
Abra uma nova janela do navegador e insira a URL do seu fórum na barra de URL, seguida por /users/admin-login, por exemplo:
https://community.mysite.com/users/admin-login
Você verá uma solicitação para inserir seu e-mail de administrador. Após enviar seu e-mail, você receberá um e-mail com um link que permitirá fazer login diretamente em sua conta de administrador. Em seguida, você pode ir para as configurações do site e desativar ativar discourse connect para desligar o DiscourseConnect.
Se isso não funcionar por algum motivo, não se preocupe, você ainda pode desativar o DiscourseConnect pelo console do servidor (
)
Desativar o DiscourseConnect pelo console do servidor
Se você não sabe o que é o console do servidor ou não tem acesso a ele, entre em contato com seu provedor de hospedagem para obter ajuda. Depois de fazer SSH no seu servidor, os comandos que você precisa executar são os seguintes:
cd /var/discourse
./launcher enter app
rails c
SiteSetting.enable_discourse_connect=false
exit
exit







