Publicado originalmente el 6/11/2014 en el Blog de Desarrolladores de Valence por Sarah-Beth Bianchi.
El reto
El modelo de autenticación para las API de Valence Learning Framework requiere que un usuario inicie sesión en el entorno de aprendizaje a través de una sesión del navegador. Se trata de un flujo de trabajo fluido al crear una aplicación web, lo que permite redirigir al usuario a la pantalla de inicio de sesión del LMS y luego volver a su aplicación en rápida sucesión. Sin embargo, si está creando una aplicación nativa que no se ejecuta en un navegador, el flujo de trabajo puede parecer inconexo y el proceso para recuperar de forma segura los tokens de usuario puede ser complicado. Conseguir que la aplicación nativa inicie una sesión del explorador y, a continuación, devolver al usuario a la aplicación tras la autenticación es un problema importante que hay que resolver.
La solución
El Ejemplo del lado del cliente Permite que una aplicación nativa inicie una sesión web, confirme la autenticación correcta del usuario, devuelva los tokens de usuario necesarios a la aplicación y cierre la sesión del navegador, incluido el cierre de la pestaña en los navegadores compatibles. Cuando se agrega a su aplicación nativa, este código guía al usuario a través del cambio de contexto necesario para la autenticación a fin de minimizar la interrupción de la experiencia del usuario.
Los detalles
Cuando la aplicación llega a un lugar donde se requiere la autenticación del usuario (por ejemplo, si la aplicación necesita extraer contenido nuevo de un curso), se activa el ejemplo del lado del cliente. En el ejemplo se abre una sesión de explorador para llevar al usuario a la pantalla de inicio de sesión de LMS y también se inicia un servidor HTTP para escuchar el redireccionamiento que tiene lugar después de que la autenticación se haya realizado correctamente. Una vez que el usuario inicia sesión correctamente, el servidor HTTP recibe los tokens de usuario y los devuelve a la aplicación. El ejemplo también envía una llamada para cerrar la pestaña del explorador que abrió. Algunos navegadores, como Firefox, no permiten que se cierren a través de javascript. En ese caso, el navegador muestra un mensaje que indica al usuario que es seguro cerrar la pestaña del navegador. Una vez que el usuario completa este proceso de autenticación, vuelve a la aplicación y puede avanzar en un estado autenticado.
La muestra
El ejemplo proporcionado está escrito en C#. Para que funcione en su entorno, deberá configurar algunas variables.
- En la línea 66 de Programs.cs, actualice el puntero al LMS. En el ejemplo, se establece en lms.valence.desire2learn.com que es el servidor de ejemplo utilizado por el Herramienta de prueba de API Muestra en línea.
- En las líneas 7 y 8 de App.config, actualiza los valores de appId y appKey para que coincidan con los valores de una aplicación que registres. Los valores de la muestra son los mismos que los que se encuentran en la herramienta de prueba de API y solo funcionarán con el LMS de muestra asociado con esa herramienta.
- En la línea 24 de Program.cs, tiene la opción de cambiar el puerto que utiliza el servidor HTTP. Como este servidor HTTP se está ejecutando en la máquina local, no necesitará cambiar el valor a menos que ese puerto se asigne a otro proceso.
Tu turno
Pruebe este ejemplo en su propia aplicación del lado del cliente y comparta sus comentarios en los foros. Si decide portar este ejemplo a otro idioma, considere la posibilidad de devolverlo a la comunidad de Valence para que podamos alojarlo en el archivo Organización de GitHub de Brightspace.