Ange230700 / workshop-js-auth

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Vers l'infini et au-delà

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.

Architecture Web {: .text-center }

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.

Créer un compte utilisateur

Architecture Web {: .text-center }

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)

Se connecter

Architecture Web {: .text-center }

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)

Sécurité

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.

About

License:MIT License


Languages

Language:JavaScript 97.1%Language:Shell 1.4%Language:HTML 0.9%Language:CSS 0.5%Language:Dockerfile 0.2%