Cette API fournit un système d'authentification sécurisé pour les utilisateurs. Elle permet l'inscription, la connexion et l'accès à des routes protégées via des tokens JWT. Le mot de passe des utilisateurs est haché avec bcrypt pour une sécurité optimale.
- Inscription : Création d'un utilisateur avec un mot de passe sécurisé (haché avec bcrypt).
- Connexion : Génération d'un token JWT pour l'utilisateur après une authentification réussie.
- Route protégée : Accès à une route nécessitant un token JWT valide pour valider l'authentification.
Avant de commencer, assurez-vous que les outils suivants sont installés sur votre machine :
-
Clonez ce repository :
git clone https://github.com/walidmadad/SecureAuthAPI.git cd SecureAuthAPI -
Installez les dépendances avec npm :
npm install
-
Créez un fichier .env à la racine du projet et ajoutez les variables suivantes :
MONGO_URI=your_mongo_connection_string JWT_SECRET=your_jwt_secret_key
*Remplacez your_mongo_connection_string par votre chaîne de connexion MongoDB. *Remplacez your_jwt_secret_key par une clé secrète pour signer vos tokens JWT.
-
Démarrez le serveur :
npm start
Le serveur sera accessible à l'adresse : http://localhost:3000.
- Description : Crée un nouvel utilisateur en hachant son mot de passe.
- Requête :
- Méthode :
POST - URL :
/register - Corps de la requête :
{ "username": "your-username", "password": "your-password" }
- Méthode :
- Réponse :
- Code :
201 Created - Corps de la réponse :
{ "message": "Utilisateur créé avec succès" } - Code en cas d'erreur :
400 Bad Requestsi l'utilisateur existe déjà, ou500 Internal Server Erroren cas d'erreur serveur.
- Code :
- Description : Permet à un utilisateur de se connecter en vérifiant son mot de passe et en générant un token JWT.
- Requête :
- Méthode :
POST - URL :
/login - Corps de la requête :
{ "username": "your-username", "password": "your-password" }
- Méthode :
- Réponse :
- Code :
200 OK - Corps de la réponse :
{ "message": "Connexion réussie", "token": "your-jwt-token" } - Code en cas d'erreur :
400 Bad Requestsi les identifiants sont incorrects, ou500 Internal Server Erroren cas d'erreur serveur.
- Code :
- Description : Permet d'accéder à une route protégée, en validant le token JWT envoyé dans l'en-tête
Authorization. - Requête :
- Méthode :
GET - URL :
/protected - En-tête de la requête :
Authorization: Bearer your-jwt-token
- Méthode :
- Réponse :
- Code :
200 OK - Corps de la réponse :
{ "message": "Bienvenue, your-username!" } - Code en cas d'erreur :
401 Unauthorizedsi le token n'est pas présent.403 Forbiddensi le token est invalide.500 Internal Server Erroren cas d'erreur serveur.
- Code :
Ce projet utilise les technologies suivantes :
- Node.js : Environnement d'exécution JavaScript côté serveur.
- Express.js : Framework pour construire des applications web et des API avec Node.js.
- MongoDB : Base de données NoSQL pour stocker les informations des utilisateurs.
- JSON Web Token (JWT) : Standard ouvert pour sécuriser les échanges entre un client et un serveur via des tokens signés.
- bcrypt : Librairie pour sécuriser les mots de passe avec un algorithme de hachage.
- dotenv : Librairie pour gérer les variables d'environnement dans le projet.
- Walid Madad : Développeur principal. GitHub
Ce projet est sous licence MIT.
Voir le fichier LICENSE pour plus de détails.