Exercice - Auth.js — Courriel et mot de passe¶
Créer une application de gestion de notes personnelles avec authentification par courriel et mot de passe :
Mise en contexte¶
Le code de départ ci-dessous contient une application Next.js qui gère des notes pour un utilisateur. Le but de l'exercice est de rendre l'application multi-utilisateurs en ajoutant l'authentification.
Étape 1 — Code de départ¶
Clonez le code de départ, une application complète que vous allez modifier :
Étape 2 -- Configurer Auth.js¶
- Installer
next-auth@betaetbcryptjs - Générer
AUTH_SECRETavecnpx auth secret - Créer
auth.tsà la racine avec le fournisseurCredentials - Créer le gestionnaire de route
app/api/auth/[...nextauth]/route.ts - Ajouter
SessionProviderdans le layout racine
Étape 3 - Créer les pages d'authentification¶
app/inscription/page.tsx: formulaire avec nom, courriel et mot de passe ; la Server Action hache le mot de passe avecbcrypt.hashavant de créer l'utilisateur, puis redirige vers/connexionapp/connexion/page.tsx: formulaire qui appellesignIn("credentials", ...); afficher un message d'erreur si les identifiants sont invalides
Étape 4 - Protéger les pages¶
- Vérifier manuellement la session avec
auth()et rediriger si absente :app/notes/page.tsx: liste des notes de l'utilisateur connecté (filtrer parutilisateurId)app/notes/nouvelle/page.tsx: formulaire de création de note avec une Server Actionapp/notes/[id]/page.tsx: affichage d'une note, s'assurer que la note appartient à l'utilisateur connecté
- Ajouter un composant de navigation qui affiche le nom de l'utilisateur et un bouton « Se déconnecter » (Server Component utilisant
auth())