formations/diiage/C3-2_Sécurité_SI/20180119_Authentification/tp.md

2.0 KiB

TP - Implémentation de l'algorithme de génération d'un JWT en NodeJS

Objectifs

Implémenter avec la librairie standard (pas d'installation de modules supplémentaires) de NodeJS un algorithme permettant de générer un JWT valide.

Environnement technique

  • NodeJS LTS (v8.9.4)

Critères d'évaluation du résultat

Critères Bonus
Le script ne contient pas d'erreur de syntaxe.
Le code est commenté.
Soit un objet et un secret défini préalablement, le script doit afficher sur la sortie standard un JWS valide, vérifiable via l'outil en ligne de débuggage Le secret et les attributs à encoder dans le JWT sont passable par arguments au script.

Super bonus (pour les plus rapides/motivés)

Implémenter en installant le module express et body-parser une micro-application web servant les routes suivantes:

#### GET /login

Affiche une simple page avec un formulaire de login/mot de passe. Ceux ci peuvent être en dur dans le code de l'application.

POST /login

Route recevant les paramètres username et password du formulaire précédent et générant un JWT avec les informations d'identification de l'utilisateur (un simple attribut username dans le payload est suffisant). Le JWT doit être affiché dans la page de réponse.

GET /profile?jwt={token}

Route affichant les éléments encodés dans le JWT passé en paramètre. L'absence de JWT valide devrait provoquer des erreurs 401/403 suivant les cas.

Ressources documentaires