Perguntas sobre o Provedor DiscourseConnect

Vou habilitar o Provedor DiscourseConnect e tenho algumas perguntas:

  1. Ainda posso personificar usuários e ter acesso a todos os controles de Administração de Usuários no Discourse após habilitar isso?

  2. O que acontece com aqueles que já existem no Discourse, mas não no WP? Suas contas serão afetadas, que credenciais eles usariam para fazer login, já que eles não existem realmente no WP.

  3. Como posso adicionar um botão de inscrição no meu site Discourse que os redirecione de volta para o Discourse após a inscrição no WP?

  4. Existe alguma maneira de os usuários ainda se inscreverem APENAS no Discourse com esta configuração habilitada.

Obrigado!

Sim, exceto as coisas que têm a ver com a criação de usuários, como convites.

Se eles puderem fazer login no WP com o mesmo endereço, acho que você ficará bem. Caso contrário, eles não existem.

O botão de login os leva sorrateiramente para o site do WP.

Não.

2 curtidas

O que você quis dizer com isso?

Então, acabei de testar isso. Peguei uma conta que existe no Discourse, mas não no Wordpress, e tentei fazer login, e o WP deu os seguintes erros:


Screenshot 2023-07-01 220024

O que, acho que faz sentido da perspectiva do WP, já que o usuário realmente não existe no WP.
A questão é: habilitar o Provedor DiscourseConnect significaria que usuários existentes do Discourse, que não estão registrados no meu WP, não poderão mais fazer login?
Existe uma solução para isso?

Quando você clica no botão de login, você é levado para o WP.

Sim. Você precisará criar esses usuários no WordPress.

Encontrei esta resposta que expande o que você sugeriu:

Mas como posso importá-los para o WP sem afetar suas credenciais de login atuais do Discourse?
Existe alguma maneira de fazer isso sem redefinir os logins do usuário ou mesmo notificá-los, para que seja uma transição tranquila?

Duvido. Existe um plugin do Discourse que permite a migração de senhas do WordPress, mas duvido que exista um que faça o caminho inverso. Você terá que fazer com que todos redefinam suas senhas.

Até que você mude para usar o login do WP, as contas que estão no WordPress não afetam o Discourse.

1 curtida

Tenho uma ideia.

E se eu habilitasse o WordPress como um Cliente Discourse e, em seguida, criasse um script de automação que:

  1. Fizesse o login como um usuário no Discourse para que a automação estivesse logada como o usuário

    • Navegasse até o WordPress e clicasse no botão “Login com Discourse”.
  2. Repetisse para todos os usuários que existem no Discourse. Cerca de 2 mil.

A ideia é que o passo nº 2 force o WP a criar uma conta para o usuário do Discourse com as mesmas credenciais. Também estou assumindo que o botão “Login com Discourse” funcionará automaticamente sem pedir senha quando eu estiver logado como o usuário, fingindo ser ele.

Depois de fazer isso, todos os usuários terão suas contas dentro do WP e então eu poderei mudar o WP para o Provedor Discourse?

Parece fazer sentido na teoria, mas adoraria ouvir seu feedback sobre se isso poderia funcionar.

Certo. Se o usuário não existe no WordPress, ele não pode fazer login no WordPress.

Você não precisa se passar por nada.

Se você quer que o WordPress seja sua fonte de autenticação

  • crie todos os usuários no WordPress. Veja que o endereço de e-mail no WP corresponde ao Discourse
  • mude o Discourse para usar o WP como host do DiscourseConnect

Você terá que fazer com que as pessoas redefinam suas senhas no WordPress.

Que problema a mudança da autenticação para o WordPress vai resolver? Eu acho que você vai se arrepender de ter feito isso.

Temos vários cursos e eventos para membros premium que acontecem em nosso site WP e quero ter uma integração perfeita entre WP e Discourse.

Quais são as desvantagens de fazer isso? e por que você diz isso…

OK. Então, se você tem usuários do Discourse no WordPress, precisará fazer com que todos esses usuários tenham uma conta no WordPress. Se eles a criarem com o mesmo endereço de e-mail, eles deverão ser conectados ao seu usuário do Discourse quando fizerem login.

Não sei mais o que dizer.

1 curtida

Como Jay observou, a melhor maneira de conseguir isso é configurar seu site WordPress para ser o provedor de SSO para Discourse. Dê uma olhada neste tópico para obter detalhes sobre como configurá-lo: Configure single sign-on (SSO) with WP Discourse and DiscourseConnect.

Após configurar o WordPress como o provedor do DiscourseConnect, os usuários do Discourse que ainda não têm contas em seu site WordPress precisarão se inscrever no WordPress antes de poderem acessar seu site Discourse. Você deve adicionar uma mensagem ao seu site Discourse para informar os usuários sobre a mudança. Na mensagem, incentive os usuários a se inscreverem no WordPress com o mesmo endereço de e-mail que estão usando no Discourse. Dessa forma, eles serão logados em sua conta Discourse existente na primeira vez que fizerem login no Discourse novamente via WordPress.

Se os usuários não se registrarem no WordPress com o endereço de e-mail que estão usando no Discourse, uma nova conta será criada para eles na primeira vez que fizerem login no Discourse novamente via WordPress. Você pode resolver esse problema caso a caso, mesclando a conta antiga do Discourse na nova conta do Discourse. Isso pode ser feito na página de administração do usuário do Discourse.

Uma coisa a notar é que o comportamento dos usuários sendo logados em sua conta Discourse existente só funcionará se os endereços de e-mail estiverem sendo marcados como “válidos” no lado do WordPress. Se você estiver usando o sistema de registro padrão do WordPress, isso funcionará sem problemas. Se você estiver usando uma página de registro personalizada que foi adicionada por um plugin, é provável que os endereços de e-mail dos usuários não sejam marcados como “válidos”. Detalhes sobre como resolver esse problema estão aqui: Configure single sign-on (SSO) with WP Discourse and DiscourseConnect. Observe que é muito importante que você não aceite cegamente os endereços de e-mail sem validá-los de alguma forma. Se os endereços de e-mail não forem validados, você corre o risco de ter contas existentes assumidas.

4 curtidas

Como saberíamos?

Aqui está minha página de registro: Log In ‹ Project Van Life — WordPress

Ela tem um design diferente por causa do meu tema, mas sei que não temos um plugin dedicado para login.

Parece que você está usando o sistema de registro padrão do WordPress. Estou assumindo isso porque sua página de login está em wp-login.php. Isso significa que o plugin WP Discourse marcará os endereços de e-mail dos usuários como verificados.

3 curtidas

Outra pergunta sobre isso.

O Discourse ainda envia e-mails quando o Provedor Discourse Connect está configurado, o Discourse ainda envia notificações por e-mail para usuários do WP?

Como funciona se alguém é um usuário do WP, mas nunca acessou o fórum, versus alguém que é um usuário do WP e está acessando o fórum.

Sim, o Discourse ainda enviará e-mails para eles. As notificações por e-mail enviadas pelo Discourse não são afetadas pelo uso do Discourse Connect como sistema de autenticação.

Um usuário em seu site WordPress que nunca acessou o Discourse não é considerado um usuário no Discourse. Eles não receberão nenhuma notificação por e-mail do Discourse. A única exceção é se você habilitar a configuração do WP Discourse “Criar ou Sincronizar Usuários do Discourse no Login”:

Se essa configuração estiver habilitada, uma conta do Discourse será criada automaticamente para os usuários quando eles fizerem login em seu site WordPress. Nesse caso, se um usuário fez login no WordPress, mas nunca visitou seu site Discourse, ele começará a receber o e-mail de resumo semanal do seu site Discourse.

3 curtidas

Então, acabei de testar isso e não parece ser o caso. Como posso garantir que os e-mails dos usuários sejam verificados agora sem ter que fazer isso manualmente?

Além disso, como novos usuários podem se inscrever e também ter seus e-mails verificados? Atualmente, nós os enviamos para wp-login.php, que não tem opção de inscrição, apenas de login.

Posso criar um novo botão no fórum que diga ‘inscrever-se’ e os envie para uma página de inscrição personalizada dentro do WP, mas então isso é um problema:

Além disso, depois que eles se inscreverem, eu gostaria de redirecioná-los de volta para o Fórum e garantir que eles estejam logados.

Também estou explorando outra abordagem que acredito que facilitaria as coisas da perspectiva dos usuários e adoraria ouvir seus pensamentos.

E se exportássemos manualmente todos os usuários do Discourse e os importássemos para o WordPress? Este processo:

  1. Criaria uma conta no WordPress para cada usuário que existe no Discourse

  2. Vincularia essa conta ao perfil deles no fórum

  3. Marcaria o endereço de e-mail deles como verificado no WP. Como eles já são usuários do Discourse, podemos presumir que eles são verificados.

  4. Enviaria um e-mail a eles dizendo para redefinir a senha do fórum (porque a etapa 1 a redefiniria)

Dessa forma, eles não precisam criar uma nova conta para si mesmos e apenas precisam redefinir suas senhas.

Este processo não resolve as perguntas/problemas que destaquei na resposta acima desta.

Você pode confirmar se os endereços de e-mail estão sendo verificados ou não, criando uma nova conta no WordPress após ter habilitado o Discourse Connect. Se os endereços de e-mail forem verificados, você verá uma confirmação na parte inferior da página de preferências do usuário. Você também pode marcar manualmente um endereço de e-mail como verificado a partir daqui:

Assumindo que os endereços de e-mail não estão sendo verificados, as instruções sobre como marcar os endereços de e-mail como verificados quando um usuário cria uma conta estão aqui: Configure single sign-on (SSO) with WP Discourse and DiscourseConnect. Isso seria seguro de fazer se o seu site estiver enviando um e-mail de confirmação aos usuários que contém um link que eles precisam clicar antes de poderem acessar o site. Se o seu site WordPress não estiver fazendo isso, você também pode adicionar algum código para que os endereços de e-mail dos usuários sejam marcados como verificados após o registro em um de seus cursos. Configurar isso pode exigir alguma ajuda de um desenvolvedor.

Estou vendo duas páginas de login separadas no seu site:

A coisa mais fácil a fazer seria resolver isso para que haja apenas uma página de login no site, e a página contenha um link válido para a página de registro do site. Suspeito que isso possa ser realizado através da página de configurações do plugin que está adicionando o formulário de login. Note que se você optar por usar a página de login em https://projectvanlife.com/login/ , você precisará adicionar /login ao “Caminho para sua Página de Login” nas configurações do WP Discourse:

Acho que isso pode confundir os usuários. Uma abordagem mais fácil seria apenas adicionar um link ao seu fórum Discourse que seja estruturado de forma que os usuários façam login automaticamente no Discourse quando clicarem no link. Aqui estão os detalhes sobre como criar o link: Create a DiscourseConnect login link. Uma vez que o DiscourseConnect esteja habilitado em seu site, você também deve estruturar este link dessa forma:

Isso é possível. Alguns detalhes sobre como fazer isso estão aqui: How to import Discourse users to WordPress? - #2 by simon. O principal problema que vejo é que você estaria criando trabalho para si mesmo sem facilitar muito as coisas para seus usuários. Se fosse eu, minhas preocupações seriam que os usuários pudessem não receber ou ler o e-mail e alguns usuários poderiam não ficar felizes em ter uma nova conta criada em nome deles. Há também uma questão de segurança potencial, a menos que o plugin importador que você usa tenha uma maneira de forçar os usuários a mudar suas senhas após o primeiro login.

Seria muito mais fácil apenas criar um tópico de banner em sua categoria “staff” com detalhes sobre a mudança. A redação na captura de tela poderia ser um pouco melhorada:

Depois de fazer a mudança, atualize o tópico do banner para informar aos usuários para contatarem um administrador se tiverem algum problema para fazer login.

Acabei de pensar em algo que pode ajudar. Você poderia configurar temporariamente seu site Discourse para ser o provedor DiscourseConnect para o seu site entre agora e o momento em que você configurar seu site WordPress para ser o provedor DiscourseConnect. Se você fizesse isso, poderia adicionar algo como o seguinte ao tópico do banner:

Aqui está o link completo que usei:

<a>Crie uma conta em (nome do seu site)</a>

Clicar nele registrará uma nova conta no WordPress e redirecionará os usuários para a página de perfil do WordPress, onde eles podem definir uma senha. Note que para o seu caso, você precisará substituir ambos os usos de http://wp-discourse.test no link por https://projectvanlife.com/

4 curtidas

@simon MUITO OBRIGADO pela sua resposta detalhada, tudo isso foi extremamente útil!

Esta é uma ótima ideia!

E se nós personificássemos cada usuário e fizéssemos isso por eles? Isso causaria algum problema?

Essa abordagem também mantém a senha de login deles a mesma depois que mudarmos o WordPress para o Provedor Discourse Connect?

3 curtidas

Eu não acho que isso causaria nenhum problema.

Configurar o WordPress como o provedor DIscourseConnect não alterará a senha do WordPress do usuário.

3 curtidas