API REST d'authentification complète et sécurisée développée avec NodeJS et Express. Implémente JWT, OAuth 2.0, 2FA, gestion avancée des sessions et fonctionnalités de sécurité.
- Inscription utilisateur
- Connexion / Déconnexion
- Refresh token (JWT)
- Mot de passe oublié (envoi d'email)
- Réinitialisation du mot de passe
- Changement de mot de passe
- Vérification du compte par email
- Renvoi de l'email de vérification
- Connexion via Google ou GitHub
- Activation / Désactivation du 2FA
- Vérification du code 2FA à la connexion
- Liste des sessions actives
- Révocation d'une session spécifique
- Révocation de toutes les autres sessions
- Consultation du profil
- Modification du profil
- Suppression du compte
- Protection contre le brute-force (rate limiting)
- Historique des connexions (date, IP, appareil)
- Blacklist des access tokens
- Whitelist des refresh tokens
- Runtime: Node.js
- Framework: Express.js
- Base de données: [Sqlite]
- ORM: [Prisma]
- Authentification: JWT (JSON Web Tokens)
- OAuth: Passport.js / OAuth 2.0
- 2FA: speakeasy / otplib
- Email: Nodemailer
- Validation: Joi / express-validator
- Sécurité: helmet, bcrypt, rate-limiter
- Node.js (v16 ou supérieur)
- npm ou yarn
- [PostgreSQL/MySQL/MongoDB - à préciser]
- Compte Google Cloud / GitHub OAuth (pour OAuth)
- Service SMTP (pour l'envoi d'emails)
- Cloner le dépôt
git clone https://github.com/SanManjiro/nodejs-express-auth-api
cd nodejs-express-auth-api- Installer les dépendances
npm install- Configurer les variables d'environnement
Créer un fichier .env à la racine :
PORT=3000
NODE_ENV=development
DATABASE_URL=file:./dev.db
JWT_SECRET=un_secret_tres_fort
- Initialiser la base de données
npx prisma migrate dev --name init- Lancer le serveur
npm run dev