Estamos utilizando nuestra propia aplicación como proveedor de SSO para Discourse y tenemos un problema al vincular usuarios a temas privados en nuestro foro de Discourse desde nuestra aplicación: la autenticación solo se activa al hacer clic en el botón «Iniciar sesión».
- Utilizamos nuestro propio sistema como proveedor de SSO para Discourse.
- Tenemos una mezcla de páginas públicas y privadas en Discourse, por lo que no tenemos establecido
login_required. - Si un usuario se autentica en nuestro sistema y lo vinculamos a la URL raíz de Discourse, se le muestran las categorías públicas pero no inicia sesión.
- Si un usuario se autentica en nuestro sistema y lo vinculamos a Discourse +
/login, inicia sesión correctamente y es redirigido a la URL raíz de Discourse. - Si un usuario se autentica en nuestro sistema y lo vinculamos a la URL de una categoría o tema privado en Discourse, se le muestra una página que le solicita iniciar sesión. Si hace clic en «Iniciar sesión», se inicia sesión automáticamente y se le muestra la categoría/tema.
Este último caso es el problemático. Creo que una de las siguientes opciones sería adecuada:
- Podemos vincular a
nuestro-discourse.com/c/alguna-categoria?login=truey se realizará una verificación de autenticación: si el usuario ha iniciado sesión, se le mostrará el tema; si no, se le enviará a nuestro proveedor de SSO y se le redirigirá de nuevo al tema tras iniciar sesión. - Podemos vincular a
nuestro-discourse.com/login?redirect=c/alguna-categoriay se realizará una verificación de autenticación: si es exitosa, se redirigirá a la página indicada en la cadena de consulta; si no, se redirigirá al proveedor de SSO y, tras una autenticación exitosa, se redirigirá a la página indicada en la cadena de consulta. - Podemos vincular a
nuestro-discourse.com/c/alguna-categoria, y si es una página privada, Discourse realizará una verificación de autenticación: si es exitosa, se accederá a la categoría; si no, se redirigirá al proveedor de SSO y luego se volverá a redirigir.
¡Gracias!
(He publicado este problema anteriormente aquí; disculpen las múltiples publicaciones, pero pensé que quizás un nuevo tema obtendría más respuestas).