Estoy implementando mi propio servicio de autenticación como proveedor SSO para Discourse. Funciona correctamente. Sin embargo, cuando mis usuarios (que no han iniciado sesión) abren una URL de tema prellenado, no ven esos datos prellenados después de ser redirigidos de nuevo a Discourse.
Escenario completo:
Un usuario no conectado abre una URL de creación de tema prellenado.
Es redirigido automáticamente a la página de SSO.
Inicia sesión mediante SSO y es redirigido de nuevo a http://discourse_site/session/sso_login?.....
Aquí espero que el usuario vea el cuadro de creación de tema con los datos rellenados, pero Discourse solo muestra la página del último tema. Ni siquiera muestra el cuadro de creación de tema.
¿Alguien puede ayudarme con este problema? ¿Hay algún error en mi configuración o se trata de un bug?
También puedo confirmar que si estoy en un tema específico y presiono “iniciar sesión”, la redirección funciona correctamente y regreso a ese tema.
Gracias @simon por tu respuesta. Lamentablemente no logré que funcionara. En tu enlace indicaba usar una URL como
http://localhost:3000/session/sso?return_path=http%3A%2F%2Flocalhost%3A3000%2Fnew-message%3Fusername%3Dscossar%26title%3DInformation+requested+about+gentle+yoga+classes
Primero pensé que debía agregarla en la etapa 6 de la documentación oficial de SSO de Discourse. Entonces sería algo así:
Pero no funcionó. Así que empecé a probarlo en diferentes lugares y ninguno funcionó. ¿Podrías explicarme con más detalle dónde debo colocar return_path?
Todo lo que necesitas hacer es crear un enlace en el formato indicado en esa publicación. Deberás sustituir la URL correcta de tu sitio de Discourse y cambiar el nombre de usuario de scossar por uno que exista en tu sitio. No agregues los parámetros payload o sig al enlace. Todo eso debería ser manejado por tu implementación SSO existente. El parámetro return_path simplemente redirige al usuario a una URL que creará el tema prellenado.
Ten en cuenta que en el ejemplo al que enlazo, estoy creando un mensaje prellenado, no un tema prellenado. Necesitarás ajustar el return_path dado en el código de ejemplo para crear un tema en lugar de un mensaje.