Système d’authentification Authentification côté client Laboratoire 10 Page 01
Introduction à la
programmation de serveurs
Web
Suivant
AUTOMNE 2025 - Professeur : OUMLAZ MAROUA
Système d’authentification Authentification côté client Laboratoire 10 Page 02
L’authentification
L’authentification désigne le processus par lequel un système vérifie l’identité d’un utilisateur.
Elle permet de confirmer qu’une personne est bien celle qu’elle prétend être.
Elle repose généralement sur la fourniture d’informations confidentielles, telles qu’un nom
d’utilisateur et un mot de passe.
Une fois l’identité confirmée, le serveur doit maintenir l’état de l’utilisateur au cours de sa
navigation.
Système d’authentification Authentification côté client Laboratoire 10 Page 02
Rôle de la base dans l’authentification
Stocke les informations essentielles d’un utilisateur : email, nom, mot de passe sécurisé.
Le mot de passe est enregistré sous forme de hash.
Permet de vérifier l’existence de l’utilisateur lors de la connexion.
Sert à comparer le mot de passe saisi avec le hash enregistré.
Détecte les erreurs : compte inexistant, email déjà utilisé, mot de passe incorrect.
Exemple :
À l’inscription : le mot de passe est haché puis enregistré dans la table users.
À la connexion : la base renvoie le hash pour valider le mot de passe fourni.
Système d’authentification Authentification côté client Laboratoire 10 Page 02
Création de la table users
Contient les informations nécessaires à l’authentification.
Champs essentiels :
id : identifiant unique
nom : nom de l’utilisateur
email : adresse unique
password_hash : mot de passe sécurisé
date_inscription : horodatage de création
Système d’authentification Authentification côté client Laboratoire 10 Page 02
Création de la table users
Système d’authentification Authentification côté client Laboratoire 10 Page 02
Hashage des mots de passe (bcrypt)
Le mot de passe n’est jamais stocké en clair dans la base.
bcrypt transforme le mot de passe en hash sécurisé.
Le hash est impossible à reconvertir en texte d’origine.
Lors de la connexion, [Link]() vérifie que le mot de passe saisi correspond au hash
enregistré.
Système d’authentification Authentification côté client Laboratoire 10 Page 02
Vérification des identifiants dans la base
Le serveur recherche l’utilisateur à partir de l’email fourni.
Si l’email n’existe pas : la connexion est refusée.
Si l’email existe : récupération du hash stocké.
[Link]() vérifie si le mot de passe saisi correspond au hash enregistré.
Si la vérification réussit : l’utilisateur est authentifié.
Système d’authentification Authentification côté client Laboratoire 10 Page 02
Principe d’un système d’authentification côté
serveur
Le serveur reçoit les identifiants transmis par un formulaire (email + mot de passe).
Il vérifie l’existence de l’utilisateur dans la base de données.
Il compare le mot de passe saisi avec le hash enregistré.
Si la vérification réussit, le serveur crée une session pour l’utilisateur.
Un cookie de session est envoyé au navigateur pour maintenir l’accès.
À chaque nouvelle page, le serveur reconnaît l’utilisateur grâce à ce cookie.
Les pages protégées ne sont accessibles que si la session est active.
Système d’authentification Authentification côté client Laboratoire 10 Page 02
Utilisation des sessions pour maintenir l’état de
l’utilisateur
Après une connexion réussie, le serveur crée une session pour l’utilisateur.
Cette session contient des informations utiles (ex. : userId, email).
Le serveur envoie au navigateur un cookie de session contenant un identifiant unique.
À chaque requête, le navigateur renvoie automatiquement ce cookie.
Le serveur utilise cet identifiant pour retrouver la session et reconnaître l’utilisateur.
Grâce à cela, l’utilisateur reste connecté d’une page à l’autre sans ressaisir ses identifiants.
Système d’authentification Authentification côté client Laboratoire 10 Page 02
Routes principales : /register, /login, /logout
/register
Affiche le formulaire d’inscription.
Reçoit les données, hache le mot de passe et crée un nouvel utilisateur.
/login
Affiche le formulaire de connexion.
Vérifie les identifiants et crée une session si la connexion réussit.
/logout
Supprime la session active.
Redirige l’utilisateur vers la page de connexion ou d’accueil.
Système d’authentification Authentification côté client Laboratoire 10 Page 02
Routes principales : /register, /login, /logout
Système d’authentification Authentification côté client Laboratoire 10 Page 02
Vérification du mot de passe et création d’une
session
Le serveur récupère l’utilisateur en base grâce à l’email.
Il compare le mot de passe saisi avec le hash enregistré (via [Link]).
Si la vérification réussit, une session est créée pour identifier l’utilisateur.
Les informations utiles (ex. : userId, email) sont stockées dans la session.
Le navigateur reçoit automatiquement un cookie de session permettant de rester connecté.
Système d’authentification Authentification côté client Laboratoire 10 Page 02
Vérification du mot de passe et création d’une
session
Système d’authentification Authentification côté client Laboratoire 10 Page 02
Middleware pour protéger les routes
Vérifie si l’utilisateur possède une session active.
Empêche l’accès aux pages protégées pour les utilisateurs non connectés.
Redirige automatiquement vers la page de connexion si aucune session n’est trouvée.
S’assure que seules les personnes authentifiées accèdent aux zones privées du site.
Système d’authentification Authentification côté client Laboratoire 10 Page 02
Formulaires EJS : inscription et connexion
Les formulaires sont générés avec EJS et envoyés au serveur via POST.
Aucun JavaScript côté client : le navigateur envoie directement les données.
Le formulaire d’inscription collecte les informations pour créer un nouvel utilisateur.
Le formulaire de connexion transmet l’email et le mot de passe pour authentification.
Système d’authentification Authentification côté client Laboratoire 10 Page 02
Formulaires EJS : inscription et connexion
Système d’authentification Authentification côté client Laboratoire 10 Page 02
Envoi des données via POST vers le serveur
Les formulaires EJS utilisent la méthode POST pour transmettre les informations de manière
sécurisée.
Les données envoyées (email, nom, mot de passe…) sont accessibles dans [Link].
Le serveur traite ces valeurs : inscription, vérification des identifiants, création de session.
Système d’authentification Authentification côté client Laboratoire 10 Page 02
Gestion du cookie de session côté client
Après la connexion, le serveur envoie au navigateur un cookie de session.
Ce cookie contient uniquement un identifiant unique de session.
Le navigateur le stocke automatiquement et le renvoie à chaque requête.
Aucune action n’est nécessaire côté client : pas de JavaScript, pas de stockage manuel.
Grâce à ce cookie, le serveur reconnaît l’utilisateur sur toutes les pages.
Exemple :
Connexion → le serveur crée une session → il envoie [Link]=XYZ123
Le navigateur renvoie ce cookie à chaque page → l’utilisateur reste connecté.
Système d’authentification Authentification côté client Laboratoire 10 Page 02
Accès à une page protégée après connexion
Les pages sensibles (ex. : tableau de bord, profil) sont accessibles uniquement si l’utilisateur est
authentifié.
Le serveur vérifie la présence d’une session active avant d’autoriser l’accès.
Si la session est absente, l’utilisateur est automatiquement redirigé vers /login.
Ce mécanisme garantit la sécurité des zones réservées.
Système d’authentification Authentification côté client Laboratoire 10 Page 24
Laboratoire 10
Consultez le fichier du laboratoire dans la Semaine 11 sur la plateforme.
Session : principe et fonctionnement Implémentation et gestion dans Laboratoire 9 Page 25
dans le Web [Link]
MERCI
Pour toute question, veuillez me contacter à l’adresse
suivante : MOumla@[Link]