¡Hola a todos,
Necesito orientación, por favor, sobre cómo iniciar sesión de los usuarios en un sitio web remoto utilizando su usuario y contraseña actuales de Discourse.
No creo que necesite SSO… y esto es por qué.
Primero, algo de contexto sobre mi caso de uso actual y por qué no me gusta.
Actualmente tengo un sitio web en https://www.example.com que tiene un botón de inicio de sesión.
Cuando un usuario hace clic en el botón de inicio de sesión, se le pide que ingrese su nombre de usuario y dirección de correo electrónico actuales de Discourse (nota: usuario + correo electrónico, NO una contraseña).
Luego tomo estas dos piezas de información y realizo una solicitud de API GET a:
"https://mydiscourse.comm/admin/users/list/all.json?email=" + strEmail
En los encabezados de esta llamada a la API que hago, incluyo el nombre de la cuenta de usuario “sistema” y la clave de API asociada para el usuario del sistema.
Si se encuentra una coincidencia de dirección de correo electrónico, comparo el nombre de usuario que me dieron en mi formulario con el nombre de usuario devuelto en la respuesta de la API para ese correo electrónico dado.
Si coincide, entonces considero que este usuario ha iniciado sesión en mi sitio en https://www.example.com.
Construí esto hace tres o cuatro años y todavía funciona perfectamente hasta el día de hoy.
Pero…
-
Es muy confuso para un usuario ingresar una combinación de nombre de usuario + dirección de correo electrónico en un formulario de inicio de sesión
– La mayoría de la gente siempre ingresa usuario + contraseña
– A pesar de las masivas instrucciones en todo mi formulario, la gente todavía se equivoca naturalmente -
No es seguro
– Solo necesitas conocer el nombre de usuario y su dirección de correo electrónico y, armado con esas dos (triviales) piezas de información, puedes iniciar sesión en https://www.example.com “como ellos” con muy poco esfuerzo.
Lo que me gustaría hacer es que el usuario haga clic en el botón de Inicio de sesión en https://www.example.com e ingrese su usuario + contraseña actuales de Discourse (¡en lugar de usuario + correo electrónico!).
Mi sitio web en example.com luego realizaría una rápida solicitud de API a mi Discourse, confirmaría que la combinación de usuario/contraseña proporcionada es correcta y devolvería su ID de usuario actual de Discourse.
Espero que esto tenga sentido ![]()
He estado por toda la documentación de la API y, por más que lo intento, no logro encontrar un simple punto final de “inicio de sesión”? ![]()
No necesito ni quiero iniciar o cerrar la sesión de las personas en mi propio Discourse, simplemente necesito confirmar que su usuario/contraseña es correcta.
Cualquier indicación, orientación, enlace o consejo será muy bienvenido ![]()