Cette API Express.js permet de gérer les rapports de visite réalisés par des visiteurs médicaux lors de leurs rencontres avec des praticiens.
Elle offre des fonctionnalités pour ajouter, modifier, consulter et supprimer des rapports de visite.
- Node.js : Runtime pour exécuter JavaScript côté serveur.
- Express.js : Framework web rapide et minimaliste pour créer l'API REST.
- MongoDB (ou PostgreSQL) : Base de données pour stocker les rapports.
- JWT (JSON Web Token) : Authentification et sécurisation des accès.
- Express-rate-limit : Protection contre les attaques par force brute sur l’authentification.
- 🔹 Gestion des utilisateurs (inscription, connexion avec JWT).
- 🔹 Création de rapports de visite pour chaque visiteur médical.
- 🔹 Modification et suppression des rapports par leurs auteurs.
- 🔹 Consultation des rapports selon les droits d’accès.
- 🔹 Sécurisation de l’API avec JWT et rate-limiting.
L’API implémente plusieurs mécanismes pour garantir la protection des données et des accès :
- 🔐 Chiffrement des données sensibles : Les informations personnelles sont chiffrées avant stockage.
- 🔑 Hashage des mots de passe : Utilisation de
bcryptavec un sel sécurisé pour stocker les mots de passe de manière irréversible. - 🛡️ Authentification sécurisée :
- Utilisation de JWT (JSON Web Token) pour gérer les sessions utilisateurs.
- Expiration automatique des tokens après 1 heure.
- 📊 Protection contre les attaques :
express-rate-limitpour limiter les tentatives de connexion et éviter les attaques bruteforce.helmetpour sécuriser les en-têtes HTTP contre les vulnérabilités (XSS, Clickjacking, etc.).
git clone https://github.com/Nozito/GSBP-API.gitnpm init -y
npm installapi-auth/
│── server.ts
│── .env
│── config/
│ ├── db.ts
│── models/
│ ├── User.ts
│── routes/
│ ├── authRoutes.ts
│── controllers/
│ ├── authController.ts
MONGO_URI=mongodb+srv://username:password@cluster.mongodb.net/monapi
MONGOOSE_ENCRYPTION_SECRET=super_secret
JWT_SECRET=super_secret
PORT=6060
npx ts-node server.ts