Skip to content

Repository files navigation

Auth API

Une API RESTful d'authentification et de gestion des utilisateurs, rôles et permissions, construite avec Node.js, Express, Sequelize et MySQL.

Technologies

  • Node.js & Express
  • MySQL avec Sequelize ORM
  • Docker & Docker Compose
  • JWT pour l'authentification
  • Winston pour les logs
  • Helmet pour la sécurité
  • CORS pour les requêtes cross-origin

Architecture

api/
├── app.js              # Configuration de l'application Express
├── server.js           # Point d'entrée du serveur
├── config/
│   └── database.js     # Configuration Sequelize/MySQL
├── controllers/        # Logique métier
├── middlewares/        # Middlewares personnalisés
├── models/            # Modèles Sequelize
├── routes/            # Routes de l'API
└── utils/             # Utilitaires

Fonctionnalités

Authentication (authController.js)

  • POST /api/auth/register : Inscription d'un nouvel utilisateur
  • POST /api/auth/login : Connexion utilisateur

Gestion des Utilisateurs (userController.js)

  • POST /api/users : Création d'un utilisateur
  • GET /api/users/:id : Récupération d'un utilisateur
  • GET /api/users/:id/roles : Liste des rôles d'un utilisateur
  • PUT /api/users/:id : Mise à jour des informations
  • PUT /api/users/:id/password : Modification du mot de passe
  • DELETE /api/users/:id : Suppression d'un utilisateur
  • POST /api/users/addRole : Ajout d'un rôle
  • POST /api/users/removeRole : Retrait d'un rôle

Gestion des Rôles (roleController.js)

  • POST /api/roles : Création d'un rôle
  • GET /api/roles : Liste des rôles
  • GET /api/roles/:id : Détails d'un rôle
  • GET /api/roles/:id/permissions : Liste des permissions d'un rôle
  • PUT /api/roles/:id : Mise à jour d'un rôle
  • DELETE /api/roles/:id : Suppression d'un rôle
  • POST /api/roles/addPermission : Ajout d'une permission
  • POST /api/roles/removePermission : Retrait d'une permission

Gestion des Permissions (permissionController.js)

  • POST /api/permissions : Création d'une permission
  • GET /api/permissions : Liste des permissions
  • GET /api/permissions/:id : Détails d'une permission
  • PUT /api/permissions/:id : Mise à jour d'une permission
  • DELETE /api/permissions/:id : Suppression d'une permission

Sécurité

Configuration

Le fichier .env permet de configurer :

  • Paramètres serveur (PORT, NODE_ENV)
  • Configuration base de données
  • Secrets JWT
  • Paramètres de logging
  • Rate limiting
  • Cache

Docker

L'application peut être déployée via Docker avec :

Installation

  1. Cloner le repository
  2. Copier .env.example vers .env et configurer les variables
  3. Lancer avec Docker :
docker-compose up -d

Ou lancer localement :

npm install
npm run dev

About

Une API RESTful d'authentification et de gestion des utilisateurs, rôles et permissions, construite avec Node.js, Express, Sequelize et MySQL.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages