Cette API REST permet l'authentification et l'inscription des utilisateurs avec une base de données configurable. Elle prend en charge PostgreSQL, MongoDB et MySQL.
L'API est modulaire et permet de sélectionner la base de données via des variables d'environnement.
PORT=3000
USE_MONGODB=false
USE_POSTGRES=false
USE_MYSQL=false
MONGODB_URI=mongodb://localhost:27017/your_db
POSTGRES_URI=postgresql://username:password@localhost:5432/database
MYSQL_URI=mysql://username:password@localhost:3306/database
JWT_SECRET=your_long_secret
JWT_SALT=2
✅ Explications :
PORT
: Port d'exécution de l'API.USE_MONGODB
,USE_POSTGRES
,USE_MYSQL
: Activation/désactivation des bases de données.MONGODB_URI
,POSTGRES_URI
,MYSQL_URI
: Connexions aux bases.JWT_SECRET
: Clé secrète pour JWT.JWT_SALT
: Niveau de salage des mots de passe.
L'API permet de choisir la base de données pour différentes opérations.
const dbOperations = {
AUTH: {
db: 'postgres', // Choix de la base de données : 'postgres', 'mysql', 'mongodb'
operations: ['login', 'register']
},
};
module.exports = {
dbOperations,
getDbForOperation: (operation) => {
for (const [key, value] of Object.entries(dbOperations)) {
if (value.operations.includes(operation)) {
return value.db;
}
}
throw new Error(`No database configured for operation: ${operation}`);
}
};
- URL :
/v1/auth/register
- Méthode :
POST
- Body :
{
"username": "exemple",
"email": "exemple@email.com",
"password": "motdepasse"
}
- Réponse :
{
"message": "Utilisateur créé avec succès",
"token": "jwt_token",
"user": {
"id": "userId",
"email": "userEmail",
"username": "username"
}
}
- URL :
/v1/auth/login
- Méthode :
POST
- Body :
{
"email": "exemple@email.com",
"password": "motdepasse"
}
- Réponse :
{
"message": "Connexion réussie",
"token": "jwt_token",
"user": {
"id": "userId",
"email": "userEmail",
"username": "username"
}
}
npm install
Créer un fichier .env
et y ajouter les variables nécessaires.
npm start
✅ Le serveur sera accessible sur http://localhost:port
Développé par SkyZonDev (Jean-Pierre DUPUIS) ✨