Ce projet implémente une page d'authentification simplifiée initialement développée avec Remix, puis migrée vers Next.js App Router, avec gestion de session via cookie, vérification email, validation CSRF et base de données Prisma (SQLite).
- Cloner le projet
git clone https://github.com/thom-cr/Secure-Auth-Page-Next.js.git
cd Secure-Auth-Page-Next.js
- Installer les dépendances
npm install
- Initialiser la base de données
npx prisma migrate dev --name init
- Créer le fichier
.env
à la racine
DATABASE_URL="file:C:/chemin/absolu/vers/dev.db"
COOKIE_SECRET="un_secret_aleatoire"
Remplace le chemin par le chemin absolu vers
dev.db
sur votre machine.
- Lancer le serveur
npm run dev
- Gestion des sessions via cookies (
HttpOnly
,SameSite=Lax
) - Inscription avec validation d'email par code à 6 chiffres
- Connexion et déconnexion sécurisées
- Vérification CSRF à chaque étape critique
- Protection des routes côté serveur
- Base de données SQLite (via Prisma)
- Interface utilisateur simple
- Serveur HTTP fonctionnel de base
- Mise en place du HTTPS
- Dossier de certificat
- Création des pages principales : home, login, signup
- Mise en place du POST sur le formulaire d’inscription
- Apparition d’un bug d’inclusion CSS dans l’URL
- Correction du bug CSS
- Validation des formulaires
- Nettoyage du code
- Intégration temporaire de Prisma et SQLite
- Mise à jour de la validation avec la BDD
- Initialisation de TypeScript
- Nettoyage du code
- Ajout du logout
- Ajout du login connecté à la base de données
- Vérifications d’authentification
- Protection des routes si non authentifié
- Redirection si l'utilisateur est connecté
- Création de la page index
- Ajout des champs prénom et nom dans le formulaire
- Ajout d’un champ de confirmation de mot de passe
- Refactoring du code lié au
signup
- Transfert de l'application de Remix vers Next.js
- Passage de
auth.server.ts
àsessions.server.ts
- Unification des cookies de session sur toutes les routes
- Ajout d'une page de vérification
verify.{token}.tsx
- Redirection de l’inscription vers la vérification
- Création du compte uniquement après vérification réussie
- Expiration du token pour empêcher les reouvertures
- Passage de PostgreSQL/MySQL à SQLite via Prisma
- Configuration simplifiée pour usage local