Extensión de botones de encabezado

Hola, hemos heredado un foro de Discourse que está bien establecido. Me gustaría modificar la funcionalidad del botón de encabezado “crear cuenta”.

Logré instalar el complemento Ember Chrome que utilicé para inspeccionar los botones; reveló una ruta:

​/​var​/​www​/​discourse​/​app​/​assets​/​javascripts​/​discourse​/​node_modules​/​.embroider​/​rewritten-app​/​components​/​header​/​auth-buttons.js

No estoy seguro, pero creo que el js relacionado está aquí:

Tengo acceso al panel de administración del foro, puedo acceder a ‘Componentes’, pero no veo una entrada para estos botones. Vi algunos componentes “de prueba” usados, intenté habilitar uno de ellos y copiar el contenido del archivo auth-buttons.gjs en la sección de encabezado común, pero cuando intento guardar obtuve errores.

Entonces, mi pregunta es: ¿cómo puedo extender y personalizar la funcionalidad de estos botones?

Gracias de antemano.

Hola, ¿qué intentas hacer con estos botones?

Queremos que los usuarios se registren a través de nuestro sitio principal; el inicio de sesión de la cuenta funcionará entonces para el foro…

Realmente necesitas usar SSO. Discourse se adaptará automáticamente a tu proveedor de SSO una vez que esté configurado correctamente.

5 Me gusta

Ya estamos utilizando SSO: el foro autentica a los usuarios a través del mismo proveedor que nuestro sitio principal. Sin embargo, cuando un usuario se registra para obtener una cuenta en el foro, simplemente queremos dirigirlo al sitio principal. ¿Cuál es la mejor manera de hacerlo?

¿Está totalmente seguro de que realmente quiere hacer eso? Desde el punto de vista de los usuarios, alguien está tratando de engañarlos. Estaban interesados en un foro y después del registro se encontrarán en otro lugar.

1 me gusta

Deshabilita todos los demás métodos de autenticación (incluidos los inicios de sesión locales) y deja solo el SSO como opción para iniciar sesión. Esto enviaría automáticamente a los usuarios a iniciar sesión en tu sitio principal.

4 Me gusta

Si lo configuras correctamente, ¿creo que redirigirá de nuevo después de iniciar sesión?

La autenticación funciona; es el botón “Registrarse” el que queremos personalizar para que vaya al sitio principal…

Eso es lo que sugerí anteriormente.

2 Me gusta

Puedo dar fe. Si se configura correctamente, los botones de inicio de sesión y registro predeterminados irán al sitio principal. No necesitas modificar la interfaz de usuario predeterminada.

1 me gusta

¿entonces debería haber una opción en algún lugar del administrador donde pueda especificar la URL externa para el proceso de registro?

No, esos parámetros los proporciona su proveedor de SSO. Discourse solo mostrará el botón “iniciar sesión” en la cabecera y enviará al usuario a su punto final de autenticación proporcionado por el proveedor de SSO.

Gran si… He visto soluciones similares con demasiada frecuencia. El propósito principal es transferir permanentemente a un usuario al sitio principal donde ocurre la venta. Pero totalmente bien si el propósito es similar a lo que hace Google, por ejemplo, donde se da un pequeño rodeo para autorizar y luego se regresa al foro.

1 me gusta

Hola :wave:

Aquí tienes un componente temático con el que puedes añadir un botón de registro personalizado. Lo acabo de actualizar para que funcione con los nuevos cambios principales.

Entonces, si los inicios de sesión locales están deshabilitados, ¿el botón iría directamente a la autenticación SSO?

Sí. Eso es lo que sucede si SSO es el único método de autenticación.

1 me gusta

Correcto, entonces si el SSO solo se ocupa de la autenticación, ¿cómo ayudará aquí cuando necesito que “crear cuenta” vaya a mi sitio principal?

No habrá un botón de registro una vez que el SSO esté configurado correctamente. Luego, puede usar el componente que @Don enlazó anteriormente para agregar un botón personalizado de creación de cuenta.