Hola,
Estoy intentando crear un proceso de inicio de sesión para Discourse desde mi aplicación de front-end. ¿Cómo debería hacerlo?
Gracias ![]()
Hola,
Estoy intentando crear un proceso de inicio de sesión para Discourse desde mi aplicación de front-end. ¿Cómo debería hacerlo?
Gracias ![]()
Esta es la solución habitual:
Si solo gestionas usuarios en Discourse, ¡un botón de redirección es probablemente más fácil!
¡Gracias por tu respuesta! pero ¿puedo abrir un tipo de iframe para que puedan elegir cómo autenticarse?
No, los iframes no son compatibles.
O bien quieres administrar cuentas de usuario en tu sitio principal y luego autenticarte con Discourse Connect, o simplemente tener un enlace a tu Discourse.
¿Podrías enlazar a la ruta de inicio de sesión para que se les solicite de inmediato? /login
No puedo entender realmente cómo usar esto. Quiero decir, me imagino algo como un botón de inicio de sesión en mi sitio web, luego el usuario necesita elegir cómo ser autenticado, ¿verdad? Quiero decir, ¿cuál es el flujo posible para este escenario?
¿Por qué necesitas que inicien sesión en tu sitio web? ¿Estás gestionando cuentas de usuario allí?
Quiero poder crear publicaciones/temas desde mi front end, así que necesito que primero estén autenticados. ¿Tiene sentido?
OK, tiene algo de sentido. Esencialmente, ¿estás diciendo: “Quiero reescribir partes de la interfaz de usuario y comunicarme solo a través de la API”?
No creo que obtengas mucho soporte gratuito para ayudarte a hacer eso aquí, pero échale un vistazo a:
https://meta.discourse.org/t/help-with-authenticating-user-via-api/178355/2?u=merefield
Existen esfuerzos para hacer esto, particularmente a través de aplicaciones, podrías investigarlos, por ejemplo:
También existía Fig, pero aún no es de código abierto:
Pero ten en cuenta el nivel extremadamente alto de desarrollo inicial y mantenimiento que requieren este tipo de soluciones. Creo que los dos mejores ejemplos han sido abandonados (¿?).
Alternativamente, considera construir tu sitio web como una instancia de Discourse por completo (a través de plugins y componentes de temas) para evitar tener que reescribir muchos elementos de la interfaz de usuario.
Estoy usando Discourse como mi proveedor de identidad y ha estado funcionando muy bien. Puedes usarlo para crear un enlace de "Iniciar sesión" en tu sitio web que llevará a tu usuario a tu instancia de Discourse y, si ya ha iniciado sesión o después de completar el flujo de inicio de sesión, el usuario será redirigido a la return_sso_url que agregaste al payload, con las credenciales e información del usuario. Esta return_sso_url puede ser una ruta en tu sitio web que almacene la sesión autenticada de la manera que prefieras (como una cookie de sesión) una vez que reciba el payload de Discourse.
FWIW, Lexicon no está abandonado y todavía está en desarrollo activo.
@Roie_Natan si estás familiarizado con Javascript, podrías echar un vistazo al código fuente de Lexicon para ver cómo se logró.
Sin embargo, como señaló @merefield, existen publicaciones que podrían ayudarte a resolverlo.
Aquí tienes un recurso que habla sobre las sesiones de usuario: Storing extra data about a user's session - #3 by sam
Y también podrías encontrar útil el flujo de autenticación de la aplicación de @pmusaraj:
¡Genial! Gracias por la corrección.