Exercice - Auth.js — OAuth avec GitHub¶
Ajouter la connexion via GitHub à l'application de gestion de notes de l'exercice précédent :
- Créer une application OAuth sur GitHub :
- Aller dans GitHub → Settings → Developer settings → OAuth Apps → New OAuth App
- Remplir le formulaire avec
http://localhost:3000comme URL ethttp://localhost:3000/api/auth/callback/githubcomme URL de rappel - Copier le Client ID et générer un Client Secret
- Configurer les variables d'environnement dans
.env:AUTH_GITHUB_IDavec le Client ID GitHubAUTH_GITHUB_SECRETavec le Client Secret GitHub
- Modifier
auth.tspour ajouter le fournisseur GitHub aux côtés du fournisseurCredentials - Ajouter un bouton « Se connecter avec GitHub » sur la page
/connexion(formulaire avec Server Action appelantsignIn("github", { redirectTo: "/notes" })) - Étendre la session pour inclure l'identifiant de l'utilisateur :
- Créer
types/next-auth.d.tspour déclarerid: stringdans l'interfaceSession["user"] - Ajouter les callbacks
jwtetsessiondansauth.tspour propagertoken.subverssession.user.id
- Créer
- Modifier la page
/notespour afficher l'avatar GitHub de l'utilisateur s'il est disponible (session.user.image) avec le composantImagede Next.js - Tester les deux méthodes de connexion (courriel + mot de passe et GitHub) et vérifier que les pages protégées restent accessibles dans les deux cas