Tengo un sitio de WordPress que es el proveedor de SSO para Discourse utilizando el plugin WPDiscourse. El foro es público, pero tiene algunos grupos privados.
Cuando quiero agregar botones que lleven a los usuarios desde mi sitio de WordPress a un Grupo privado en Discourse, utilizo la URL de SSO como se menciona aquí, para que los usuarios no terminen en la página “Oops! Esa página no existe o es privada”.
Pero cuando los usuarios ya se han autenticado a través de SSO en Discourse, y regresan y hacen clic en los mismos botones, llegarán a la página de inicio de sesión nuevamente, incluso si seleccionaron la casilla “Recuérdame” durante el inicio de sesión. Idealmente, podrían navegar libremente a los grupos privados una vez que se hayan autenticado en Discourse SSO.
¿Hay una mejor manera de configurar esto?
Pensé en agregar un código a la página de inicio de sesión de WP y verificar si el usuario ya ha iniciado sesión en Discourse, y si es así, redirigir a la página en el argumento “return_path” de la URL. ¿Sería esa la solución? Si es así, ¿qué funciones o llamadas a la API podría usar para lograrlo?
Si los usuarios ya han iniciado sesión en su sitio de WordPress, esto no debería estar sucediendo. ¿Puede aclarar si a los usuarios a los que les está sucediendo esto han iniciado sesión en WordPress? Si han iniciado sesión, se espera que sean redirigidos silenciosamente a la URL de Discourse que ha establecido en el argumento return_path.
Gracias Simon, sí, el usuario ha iniciado sesión en WordPress.
Lo extraño en mi escenario es que tengo un sitio principal de WP (WPSite1) que es el Proveedor de DiscourseConnect para Discourse usando WP Discourse,
Luego tengo un segundo sitio de WP (WPSite2) que sincroniza la base de datos de usuarios con WPSite1 usando el plugin WP Remote User Synch.
Sin embargo, no sé por qué interferiría con el comportamiento esperado que mencionaste, porque cuando inicio sesión en WPSite2 y luego navego a WPSite1, ya he iniciado sesión en WPSite1 también.
Pero lo que está sucediendo es que, incluso después de iniciar sesión en WPSite1, que es el Proveedor de DiscourseConnect, y hago clic en una URL como https://discourse.example.com/session/sso?return_path=/g/private_group, me lleva al formulario de inicio de sesión SSO de WP.
El escenario 2 es el caso.
Revisaré las instrucciones, pero creo que todo está configurado correctamente ya que el inicio de sesión SSO funciona, el problema es que la página de inicio de sesión no reconoce que el usuario ya está autenticado.