Publié à l’origine le 6/11/2014 sur le blog des développeurs de Valence par Sarah-Beth Bianchi.
Le défi
Le modèle d’authentification pour les API Valence Learning Framework nécessite qu’un utilisateur se connecte à l’environnement d’apprentissage via une session de navigateur. Il s’agit d’un flux de travail fluide lors de la création d’une application Web, permettant à l’utilisateur d’être redirigé vers l’écran de connexion LMS, puis de revenir dans votre application en succession rapide. Cependant, si vous créez une application native qui ne s’exécute pas dans un navigateur, le flux de travail peut sembler décousu et le processus de récupération en toute sécurité des jetons utilisateur peut être délicat. Obtenir que votre application native lance une session de navigateur, puis ramène l’utilisateur à l’application après l’authentification est un problème important à résoudre.
La solution
L' Exemple côté client permet à une application native de lancer une session Web, de confirmer l’authentification réussie de l’utilisateur, de transmettre les jetons utilisateur nécessaires à l’application et de fermer la session du navigateur, y compris la fermeture de l’onglet sur les navigateurs pris en charge. Lorsqu’il est ajouté à votre application native, ce code guide l’utilisateur à travers le changement de contexte nécessaire à l’authentification pour minimiser les perturbations de l’expérience utilisateur.
Les détails
Lorsque votre application arrive à un moment où l’authentification de l’utilisateur est requise - par exemple, si l’application doit extraire du nouveau contenu d'un cours - l’exemple côté client entre en jeu. L’exemple ouvre une session de navigateur pour amener l’utilisateur à l’écran de connexion du LMS et lance également un serveur HTTP pour écouter la redirection qui se produit après que l’authentification ait réussi. Une fois que l’utilisateur se connecte avec succès, le serveur HTTP reçoit les jetons utilisateur et les transmet à votre application. L’exemple envoie également une commande pour fermer l’onglet du navigateur qu’il a ouvert. Certains navigateurs - comme Firefox - ne permettent pas d’être fermés via JavaScript. Dans ce cas, le navigateur affiche un message à l’utilisateur lui indiquant qu’il est sûr de fermer l’onglet. Une fois que l’utilisateur a terminé ce processus d’authentification, il revient à l’application et peut avancer dans un état authentifié.
L’échantillon
L’échantillon fourni est écrit en C#. Pour qu’il fonctionne dans votre environnement, vous devrez configurer quelques variables.
- À la ligne 66 de Programs.cs, mettez à jour le pointeur vers le LMS. Dans l’exemple, il est défini sur lms.valence.desire2learn.com qui est l’exemple de serveur utilisé par le Outil de test d’API échantillon en ligne.
- Aux lignes 7 et 8 de la App.config, mettez à jour les valeurs appId et appKey pour qu’elles correspondent aux valeurs d’une application que vous inscrivez. Les valeurs de l’échantillon sont les mêmes que celles trouvées dans l’outil de test d’API et ne fonctionneront que sur l’exemple LMS associé à cet outil.
- À la ligne 24 de Program.cs, vous avez la possibilité de modifier le port que le serveur HTTP utilise. Comme ce serveur HTTP s’exécute sur l’ordinateur local, vous n’aurez pas besoin de modifier la valeur à moins que ce port ne soit alloué à un autre processus.
À votre tour
Essayez cet exemple dans votre propre application côté client et partagez vos commentaires dans les forums. Si vous choisissez de porter cet exemple dans une autre langue, envisagez de le renvoyer à la communauté de Valence afin que nous puissions l’héberger dans le org GitHub de Brightspace.