Skip to content

SanManjiro/nodejs-express-auth-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NodeJS Express Authentication API

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é.

Fonctionnalités

Authentification de Base

  • 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 Email

  • Vérification du compte par email
  • Renvoi de l'email de vérification

Authentification OAuth 2.0

  • Connexion via Google ou GitHub

Authentification à Deux Facteurs (2FA)

  • Activation / Désactivation du 2FA
  • Vérification du code 2FA à la connexion

Gestion des Sessions

  • Liste des sessions actives
  • Révocation d'une session spécifique
  • Révocation de toutes les autres sessions

Gestion du Profil

  • Consultation du profil
  • Modification du profil
  • Suppression du compte

Sécurité

  • Protection contre le brute-force (rate limiting)
  • Historique des connexions (date, IP, appareil)
  • Blacklist des access tokens
  • Whitelist des refresh tokens

Technologies Utilisées

  • 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

Prérequis

  • 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)

Installation

  1. Cloner le dépôt
git clone https://github.com/SanManjiro/nodejs-express-auth-api
cd nodejs-express-auth-api
  1. Installer les dépendances
npm install
  1. 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
  1. Initialiser la base de données
npx prisma migrate dev --name init
  1. Lancer le serveur
npm run dev

About

Complete authentication REST API built with NodeJS and Express. Features JWT authentication, OAuth 2.0 (Google/GitHub), two-factor authentication (2FA), session management, email verification, password reset, rate limiting, and login history.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors