Preguntas sobre el proveedor DiscourseConnect

Voy a habilitar DiscourseConnect Provider y tengo algunas preguntas:

  1. ¿Todavía puedo suplantar usuarios y tener acceso a todos los controles de administración de usuarios dentro de Discourse después de habilitar esto?

  2. ¿Qué sucede con aquellos que ya existen en Discourse, pero no en WP? ¿Se verá afectado su cuenta, qué credenciales usarían para iniciar sesión, ya que en realidad no existen en WP?

  3. ¿Cómo puedo agregar un botón de registro en mi sitio web de Discourse que los redirija de regreso a Discourse después de registrarse en WP?

  4. ¿Hay alguna forma de que los usuarios aún puedan registrarse ÚNICAMENTE en Discourse con esta configuración habilitada?

¡Gracias!

Sí, excepto las cosas que tienen que ver con la creación de usuarios, como las invitaciones.

Si pueden iniciar sesión en WP con la misma dirección, creo que estará bien. De lo contrario, no existen.

El botón de inicio de sesión los lleva sigilosamente al sitio de WP.

No.

2 Me gusta

¿Qué quisiste decir con esto?

Así que acabo de probar esto. Tomé una cuenta que existe en Discourse pero no en Wordpress e intenté iniciar sesión y WP me dio los siguientes errores:


Screenshot 2023-07-01 220024

Lo que supongo que tiene sentido desde la perspectiva de WP ya que el usuario en realidad no existe en WP.
La pregunta es: ¿habilitar el proveedor DiscourseConnect significaría que los usuarios existentes de Discourse, que no están registrados en mi WP, ya no podrán iniciar sesión?
¿Hay alguna solución para esto?

Cuando haces clic en el botón de inicio de sesión, te lleva a WP.

Sí. Necesitarás crear esos usuarios en WordPress.

Encontré esta respuesta que amplía lo que sugeriste:

Pero, ¿cómo puedo importarlos a WP sin afectar sus credenciales de inicio de sesión actuales de Discourse?
¿Hay alguna forma de hacerlo sin restablecer los inicios de sesión del usuario o incluso sin notificarles, para que sea una transición fluida?

Lo dudo. Hay un plugin de Discourse que permite migrar contraseñas desde WordPress, pero dudo que haya uno que haga lo contrario. Tendrás que hacer que todos restablezcan su contraseña.

Hasta que cambies a usar el inicio de sesión de WP, las cuentas que están en WordPress no afectan a Discourse.

1 me gusta

Tengo una idea.

¿Qué pasaría si habilitara WordPress como cliente de Discourse y luego creara un script de automatización que:

  1. Suplantara una cuenta de usuario en Discourse para que la automatización iniciara sesión como el usuario.

    • Navegara a WordPress y hiciera clic en el botón “Iniciar sesión con Discourse”.
  2. Repitiera para todos los usuarios que existen en Discourse. Alrededor de 2k.

La idea es que el paso n.º 2 obligue a WP a crear una cuenta para el usuario de Discourse con las mismas credenciales. También supongo que el botón “Iniciar sesión con Discourse” funcionará automáticamente sin pedir contraseña cuando haya iniciado sesión como el usuario, suplantándolo.

Una vez que haga esto, ¿existirían sus cuentas dentro de WP y luego podría cambiar WP al proveedor de Discourse?

Parece que tiene sentido en teoría, pero me encantaría escuchar sus comentarios sobre si esto podría funcionar.

Correcto. Si el usuario no existe en WordPress, no puede iniciar sesión en WordPress.

No necesitas suplantar nada.

Si quieres que WordPress sea tu fuente de autenticación

  • crea todos los usuarios en WordPress. Asegúrate de que la dirección de correo electrónico en WP coincida con Discourse
  • cambia Discourse para que use WP como host de DiscourseConnect

Tendrás que hacer que la gente restablezca sus contraseñas en WordPress.

¿Qué problema va a solucionar la migración de la autenticación a WordPress? Creo que te arrepentirás de haberlo hecho.

Tenemos varios cursos y eventos para miembros premium que tienen lugar en nuestro sitio web de WP y quiero tener una integración perfecta entre WP y Discourse.

¿Cuáles son las desventajas de hacer esto? y por qué dices esto…

OK. Entonces, si tienes usuarios de Discourse en WordPress, necesitarás que todos esos usuarios tengan una cuenta en WordPress. Si la crean con la misma dirección de correo electrónico, deberían conectarse con su usuario de Discourse cuando inicien sesión.

No sé qué más decir.

1 me gusta

Como señaló Jay, la mejor manera de lograr esto es configurar su sitio de WordPress para que sea el proveedor de SSO para Discourse. Eche un vistazo a este tema para obtener detalles sobre cómo configurarlo: Configure single sign-on (SSO) with WP Discourse and DiscourseConnect.

Después de configurar WordPress como el proveedor de DiscourseConnect, los usuarios de Discourse que aún no tienen cuentas en su sitio de WordPress deberán registrarse en WordPress antes de poder acceder a su sitio de Discourse. Debería agregar un mensaje a su sitio de Discourse para informar a los usuarios sobre el cambio. En el mensaje, anime a los usuarios a registrarse en WordPress con la misma dirección de correo electrónico que están utilizando en Discourse. De esa manera, iniciarán sesión en su cuenta de Discourse existente la primera vez que vuelvan a iniciar sesión en Discourse a través de WordPress.

Si los usuarios no se registran en WordPress con la dirección de correo electrónico que están utilizando en Discourse, se creará una nueva cuenta para ellos la primera vez que vuelvan a iniciar sesión en Discourse a través de WordPress. Puede resolver este problema caso por caso fusionando la cuenta antigua de Discourse en la nueva cuenta de Discourse. Esto se puede hacer desde la página de administración de usuarios de Discourse.

Una cosa a tener en cuenta es que el comportamiento de los usuarios que inician sesión en su cuenta de Discourse existente solo funcionará si las direcciones de correo electrónico se marcan como “válidas” en el lado de WordPress. Si está utilizando el sistema de registro predeterminado de WordPress, esto funcionará sin problemas. Si está utilizando una página de registro personalizada que ha sido agregada por un complemento, es probable que las direcciones de correo electrónico de los usuarios no se marquen como “válidas”. Los detalles sobre cómo resolver este problema se encuentran aquí: Configure single sign-on (SSO) with WP Discourse and DiscourseConnect. Tenga en cuenta que es muy importante que no acepte ciegamente las direcciones de correo electrónico sin validarlas de alguna manera. Si las direcciones de correo electrónico no se validan, corre el riesgo de que las cuentas existentes sean tomadas.

4 Me gusta

¿Cómo lo sabríamos?

Aquí está mi página de registro: Log In ‹ Project Van Life — WordPress

Está diseñada de manera diferente debido a mi tema, pero sé que no tenemos un plugin dedicado para el inicio de sesión.

Parece que estás utilizando el sistema de registro predeterminado de WordPress. Asumo esto porque tu página de inicio de sesión está en wp-login.php. Esto significa que el plugin WP Discourse marcará las direcciones de correo electrónico de los usuarios como verificadas.

3 Me gusta

Otra pregunta sobre esto.

¿Discourse sigue enviando correos electrónicos cuando se configura el proveedor de Discourse Connect, sigue enviando notificaciones por correo electrónico a los usuarios de WP?

¿Cómo funciona si alguien es un usuario de WP pero nunca ha accedido al foro, en comparación con alguien que es un usuario de WP y está accediendo al foro?

Sí, Discourse todavía les enviará correos electrónicos. Las notificaciones por correo electrónico enviadas desde Discourse no se ven afectadas por el uso de Discourse Connect como sistema de autenticación.

Un usuario en su sitio de WordPress que nunca ha accedido a Discourse no se considera un usuario en Discourse. No recibirán ninguna notificación por correo electrónico de Discourse. La única excepción es si habilita la configuración de WP Discourse “Crear o sincronizar usuarios de Discourse al iniciar sesión”:

Si esa configuración está habilitada, se creará automáticamente una cuenta de Discourse para los usuarios cuando inicien sesión en su sitio de WordPress. En ese caso, si un usuario ha iniciado sesión en WordPress, pero nunca ha visitado su sitio de Discourse, comenzará a recibir el correo electrónico de resumen semanal de su sitio de Discourse.

3 Me gusta

Así que acabo de probar esto y no parece ser el caso. ¿Cómo puedo asegurarme de que los correos electrónicos de los usuarios se verifiquen ahora sin tener que hacerlo manualmente?

Además, ¿cómo pueden registrarse los nuevos usuarios y también verificar su correo electrónico? Actualmente, los enviamos a wp-login.php, que no tiene opción de registro, solo de inicio de sesión.

Puedo crear un nuevo botón en el foro que diga ‘registrarse’ y los envíe a una página de registro personalizada dentro de WP, pero entonces este es un problema:

Además de esto, después de que se registren, querría redirigirlos de vuelta al foro y asegurarme de que hayan iniciado sesión.

También estoy explorando otro enfoque que creo que facilitaría las cosas desde la perspectiva del usuario y me encantaría conocer tu opinión.

¿Qué pasaría si exportáramos manualmente todos los usuarios de Discourse y los importáramos a WordPress? Este proceso:

  1. Crearía una cuenta de WordPress para cada usuario que existe en Discourse.

  2. Vincularía esa cuenta a su perfil del foro.

  3. Marcaría su dirección de correo electrónico como verificada en WP. Dado que ya son usuarios de Discourse, podemos asumir que están verificados.

  4. Les enviaría un correo electrónico pidiéndoles que restablezcan su contraseña del foro (porque el paso 1 la restablecería).

De esta manera, no tendrían que crear una nueva cuenta para sí mismos y solo tendrían que restablecer su contraseña.

Este proceso no resuelve las preguntas/problemas que destaqué en la respuesta anterior a esta.

Puedes confirmar si las direcciones de correo electrónico se están verificando o no creando una nueva cuenta en WordPress después de haber habilitado Discourse Connect. Si las direcciones de correo electrónico se verifican, verás una confirmación en la parte inferior de la página de preferencias del usuario. También puedes marcar manualmente una dirección de correo electrónico como verificada desde aquí:

Suponiendo que las direcciones de correo electrónico no se estén verificando, aquí tienes instrucciones sobre cómo hacer que las direcciones de correo electrónico se marquen como verificadas cuando un usuario crea una cuenta: Configure single sign-on (SSO) with WP Discourse and DiscourseConnect. Esto sería seguro de hacer si tu sitio está enviando a los usuarios un correo electrónico de confirmación que contiene un enlace en el que deben hacer clic antes de poder acceder al sitio. Si tu sitio de WordPress no está haciendo eso, también podrías agregar algo de código para que las direcciones de correo electrónico de los usuarios se marquen como verificadas después de que se hayan registrado en uno de tus cursos. Configurar eso podría requerir la ayuda de un desarrollador.

Veo dos páginas de inicio de sesión separadas en tu sitio:

Lo más fácil sería solucionar esto para que solo haya una página de inicio de sesión en el sitio, y la página contenga un enlace válido a la página de registro del sitio. Sospecho que eso se puede lograr a través de la página de configuración del plugin que agrega el formulario de inicio de sesión. Ten en cuenta que si eliges usar la página de inicio de sesión en https://projectvanlife.com/login/, deberás agregar /login a la “Ruta a tu página de inicio de sesión” en la configuración de WP Discourse:

Creo que esto podría confundir a los usuarios. Un enfoque más fácil sería simplemente agregar un enlace a tu foro de Discourse que esté estructurado de manera que los usuarios inicien sesión automáticamente en Discourse cuando hagan clic en el enlace. Aquí tienes detalles sobre cómo crear el enlace: Create a DiscourseConnect login link. Una vez que DiscourseConnect esté habilitado en tu sitio, también deberías estructurar este enlace de esa manera:

Eso es posible. Algunos detalles sobre cómo hacerlo están aquí: How to import Discourse users to WordPress? - #2 by simon. El principal problema que veo es que estarías creándote trabajo sin facilitar mucho las cosas a tus usuarios. Si fuera yo, me preocuparía que los usuarios no recibieran o no leyeran el correo electrónico y que a algunos usuarios no les gustara que se creara una nueva cuenta en su nombre. También existe un posible problema de seguridad a menos que el plugin importador que utilices tenga una forma de obligar a los usuarios a cambiar sus contraseñas después de su primer inicio de sesión.

Sería mucho más fácil simplemente crear un tema de banner en tu categoría de “personal” con detalles sobre el cambio. La redacción de la captura de pantalla podría mejorarse un poco:

Una vez que hayas realizado el cambio, actualiza el tema del banner para informar a los usuarios que se pongan en contacto con un administrador si tienen algún problema para iniciar sesión.

Se me acaba de ocurrir algo que podría ayudar. Podrías configurar temporalmente tu sitio de Discourse para que sea el proveedor de DiscourseConnect para tu sitio web entre ahora y el momento en que configures tu sitio de WordPress como el proveedor de DiscourseConnect. Si hicieras eso, podrías agregar algo como lo siguiente al tema del banner:

Aquí tienes el enlace completo que he utilizado:

<a>Crea una cuenta en (el nombre de tu sitio web)</a>

Al hacer clic en él, se registrará una nueva cuenta en WordPress y se redirigirá a los usuarios a su página de perfil de WordPress, donde podrán establecer una contraseña. Ten en cuenta que en tu caso necesitarás reemplazar ambos usos de http://wp-discourse.test en el enlace con https://projectvanlife.com/

4 Me gusta

@simon ¡MUCHAS gracias por tu detallada respuesta, todo esto fue extremadamente útil!

¡Esta es una gran idea!

¿Qué pasaría si suplantáramos a cada usuario y hiciéramos esto por ellos? ¿Causaría algún problema?

¿Este enfoque también mantiene la misma contraseña de inicio de sesión después de que cambiamos WordPress al proveedor de Discourse Connect?

3 Me gusta

No creo que cause ningún problema.

Establecer WordPress como el proveedor de DIscourseConnect no cambiará la contraseña de WordPress del usuario.

3 Me gusta