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": "[email protected]",
"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": "[email protected]",
"password": "motdepasse"
}- Réponse :
{
"message": "Connexion réussie",
"token": "jwt_token",
"user": {
"id": "userId",
"email": "userEmail",
"username": "username"
}
}npm installCré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) ✨