Dans cet atelier sur l'authentification (auth), plongez dans l'architecture d'une application web existante. Explorez la création de compte utilisateur et la requête de connexion en utilisant comme grille de lecture le schéma ci-dessous, illustrant l'interaction entre le client (React et fetch), le serveur web (Express et un client de base de données), le serveur de base de données.
Clonez ce dépôt grâce au lien fourni au début de cette page ⬆, dans la section Code {: .alert-info }
Créez ensuite les fichiers backend/.env
et frontend/.env
, puis exécutez les commandes habituelles (dans le bon répertoire 😉) :
npm install
npm run db:migrate
npm run dev
Les pages http://localhost:3000/register et http://localhost:3000/login devraient être fonctionnelles (adaptez le port au besoin). Vous pouvez les tester en créant un compte utilisateur, et en vous connectant.
Dans cette première partie, explorez la création de compte utilisateur. Consultez le schéma ci-dessus, représentant l'architecture de l'application web. Remplissez la grille ci-dessous en indiquant les éléments clés pour chaque étape du schéma.
Étape | Réponse |
---|---|
Composant React | |
body du fetch | |
Controller Express | |
Manager SQL |
La solution ?
Étape | Réponse |
---|---|
Composant React | frontend/src/pages/Register.jsx |
body du fetch | { email, password } |
Controller Express | backend/controllers/userControllers.js |
Manager SQL | backend/models/UserManager.js (create) |
Dans cette seconde partie, concentrez-vous sur la requête de connexion. Utilisez le schéma ci-dessus comme référence et remplissez la grille ci-dessous en identifiant les éléments associés à chaque étape.
Étape | Réponse |
---|---|
Composant React | |
body du fetch | |
Controller Express | |
Manager SQL |
La solution ?
Composant | Réponse |
---|---|
Composant React | frontend/src/pages/Login.jsx |
body du fetch | { email, password } |
Controller Express | backend/controllers/authControllers.js |
Manager SQL | backend/models/UserManager.js (readByEmail) |
Si cette version du login est fonctionnelle, elle n'est pas du tout sécurisée.
Plusieurs étapes clés sont importantes à mettre en place, comme hacher les mots de passes.