Tengo el SSO configurado y funcionando correctamente. Sin embargo, me gustaría iniciar sesión automáticamente a mis usuarios cuando visiten nuestra comunidad de Discourse si ya han iniciado sesión en nuestro sitio web principal. En esencia, hacer clic en el botón “Iniciar sesión” para iniciar el SSO y devolverlos a Discourse, a la página donde se encontraban originalmente.
Solo he comenzado a revisar el código de inicio de sesión, pero esperaba que alguien más pudiera ofrecerme alguna orientación sobre cómo puedo iniciar el inicio de sesión desde un componente de tema personalizado.
Esto se puede hacer, pero puede causar problemas al iniciar sesión en el sitio de tu proveedor de SSO si el SSO está mal configurado en algún momento. Un enfoque más seguro es agregar un enlace de inicio de sesión SSO al sitio web que inicie sesión automáticamente a los usuarios en Discourse y los redirija a una página especificada cuando hagan clic en el enlace. Consulta Create a DiscourseConnect login link para más detalles.
¿Podrías ampliar qué tipo de problemas podría esperar?
En mi caso concreto, los visitantes no accederán primero a la aplicación principal en una sesión determinada. Visitarán el sitio de la comunidad, pero en algún momento habrán iniciado sesión en la aplicación principal. Me gustaría recuperar la sesión de inicio de sesión automáticamente, sin ninguna interacción por parte del usuario.
Encontré un problema con esto cuando intentaba iniciar sesión de usuarios en Discourse desde WordPress redirigiéndolos silenciosamente a Discourse y luego de vuelta a WordPress como parte del proceso de inicio de sesión de WordPress. Si el SSO estaba mal configurado, los usuarios quedaban bloqueados fuera de WordPress.
Si deseas probar este tipo de enfoque, necesitarás habilitar la configuración sso permite todas las rutas de retorno en Discourse. Si lo haces, podrás redirigir a los usuarios a: