Profitez de -10% aux VPS Hostinger grâce à notre lien affilié : https://www.hostinger.fr/algomax (12 mois d'engagement min) ou utilisez le code promo ALGOMAX
Abonnez-vous à la nouvelle chaîne YouTube @algomax-dev https://www.youtube.com/channel/UCXhDSi24vacNyENdOpS0GUQ
Développe des serveurs API en Javascript en utilisant ce puissant framework de NodeJS. Grâce à sa configuration par défaut, pas besoin d'ajouter Eslint, Prettier et Typescript. Tout est déjà prêt, tu n'as plus qu'à commencer à coder !
Dans cette vidéo, nous allons découvrir le framework NestJS et implémenter l'authentification des comptes utilisateurs.
Repo backend: https://github.com/Varkoff/nestjs-chat-api
Repo frontend: https://github.com/Varkoff/nestjs-chat-front
Au programme :
- Découverte de NestJS (Contrôleurs, Services et Modules)
- Création de comptes utilisateurs
- Gestion de mot de passe cryptés avec bcrypt
- Identification avec les token JWT
- Mise en place d'un frontend qui communique avec l'API
- Persistance d'une session utilisateur
- Retours utilisateurs pour une meilleure UX
Tous les épisodes de la série :
- Crée ta première API et implémente l'authentification
https://youtu.be/Btr55ghpjyI
- Ajout de la messagerie en temps réel (websockets)
https://youtu.be/bCgkY_308r0
- Hébergement des images dans un bucket S3
https://youtu.be/_G9TTF_0oPg
Lien vers la playlist : https://www.youtube.com/playlist?list=PLOyaGE5M4B0gMbZTSS2IsJ-1F5rwMjKnF
Sommaire :
00:00 Introduction
00:40 Présentation de NestJS
02:30 Fichiers Services
03:43 Fichiers Contrôleurs
05:47 Fichiers Modules
08:30 Point d'entrée : main.ts
10:50 Création du module utilisateur
15:00 Configurer la base de donnée avec Prisma
16:40 Configurater Planetscale pour héberger notre base de donnée
19:44 Création du modèle Utilisateur
21:15 Création du PrismaService
22:30 Récupération des utilisateurs en base de donnée
24:45 Récupérer un paramètre d'URL avec le décorateur @Param()
25:50 Authentification des utilisateurs
27:10 Récupérer le body d'une requête avec le décorateur @Body()
28:30 Connexion d'un utilisateur existant
30:46 Créer des mots de passe cryptés avec bcrypt.js
34:40 Comparer le mot de passe crypté et le mot de passe en clair
36:40 Identifier un utilisateur avec les JWT (et garder la session active)
01:00:40 Création de comptes utilisateurs
01:03:40 Création d'un frontend pour communiquer avec notre API
01:11:25 Validation des données côté serveur grâce aux DTOs (avec Class-Validator)
01:19:39 Garder une session active côté front (avec Remix)
01:23:30 Récupérer la session de l'utilisateur connecté
01:24:30 Connecter notre utilisateur avec la session créée
01:29:40 Récupérer les informations de l'utilisateur connecté par API avec la session
01:32:45 hook useOptionalUser()
01:36:06 Déconnecter l'utilisateur (en détruisant la session)
01:38:36 Affichage conditionnel de notre page d'accueil
01:39:10 Formulaire d'inscription
01:41:40 Affichage des messages d'erreur (UX)
01:44:10 Afficher les messages d'erreur côté front
01:46:40 Feature : Se déconnecter
01:48:00 Refactoriser le hook useOptionalUser()
01:52:00 Valider les données avec Zod & messages d'erreur de formulaires (UX)
01:58:35 Envoi d'emails transactionnels avec Resend
02:00:20 ✉️ MailerService
02:05:00 Réinitialiser le mot de passe oublié par lien
Stack technique :
- NestJS
- Typescript
- Prisma ORM https://www.prisma.io/?via=algomax
- base de donnée Mysql hébergée chez Planetscale
- React avec Remix pour le front
- VPS Hostinger https://hostinger.com/algomax
Blog personnel : https://varkoff.fr
Je partage tout sur twitter ! : https://twitter.com/Varkoffs
LinkedIn : https://www.linkedin.com/in/virgile-rietsch