Skip to content

SkyZonDev/AUTH_API_REST

Repository files navigation

🚀 API REST d'Authentification

📖 Description

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.


⚙️ Configuration

L'API est modulaire et permet de sélectionner la base de données via des variables d'environnement.

🔧 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.

🗄️ Gestion des Bases de Données

L'API permet de choisir la base de données pour différentes opérations.

📌 Exemple de Configuration

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}`);
    }
};

📡 Endpoints

📝 1. Inscription d'un utilisateur

  • 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"
    }
}

🔑 2. Connexion d'un utilisateur

  • 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"
    }
}

🚀 Installation et Lancement

1️⃣ Installer les dépendances

npm install

2️⃣ Configurer les variables d'environnement

Créer un fichier .env et y ajouter les variables nécessaires.

3️⃣ Lancer le serveur

npm start

✅ Le serveur sera accessible sur http://localhost:port


👤 Auteur

Développé par SkyZonDev (Jean-Pierre DUPUIS)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published