Skip to main content

Vue d’ensemble

DLoopIQ utilise deux mécanismes d’authentification selon le type d’utilisateur :
TypeMécanismeHeader HTTP
AcheteurEmail + mot de passe → JWT 30 joursAuthorization: Bearer <jwt>
AdminEmail + mot de passe → JWT 30 joursAuthorization: Bearer <jwt>
DéveloppeurClé API (cuid)Authorization: Bearer <apiKey>

Authentification Acheteur

1. S’inscrire

curl -X POST https://dloopiq.onrender.com/api/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "email": "mon@email.com",
    "password": "MonMotDePasse123!",
    "companyName": "Ma Startup IA"
  }'
Réponse :
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "buyer": {
    "id": "cmpkb4ghw00016qduu44p7n2q",
    "email": "mon@email.com",
    "companyName": "Ma Startup IA",
    "creditBalance": 0
  }
}

2. Se connecter

curl -X POST https://dloopiq.onrender.com/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "mon@email.com",
    "password": "MonMotDePasse123!"
  }'

3. Utiliser le JWT

curl https://dloopiq.onrender.com/api/v1/auth/me \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
Le JWT expire après 30 jours. Reconnectez-vous via /auth/login pour en obtenir un nouveau.

4. Changer de mot de passe

curl -X POST https://dloopiq.onrender.com/api/v1/auth/change-password \
  -H "Authorization: Bearer <jwt>" \
  -H "Content-Type: application/json" \
  -d '{
    "currentPassword": "AncienMDP123!",
    "newPassword": "NouveauMDP456!"
  }'

Authentification Développeur

Les développeurs s’authentifient avec leur clé API (format cuid), générée à la création du compte.
# Récupérer son profil développeur
curl https://dloopiq.onrender.com/api/v1/dev/me \
  -H "Authorization: Bearer cmpkb4ghw00016qduu44p7n2q"

Regénérer sa clé API

Si votre clé est compromise, générez-en une nouvelle :
curl -X POST https://dloopiq.onrender.com/api/v1/auth/regenerate-api-key \
  -H "Authorization: Bearer <jwt>"
L’ancienne clé est immédiatement invalidée. Mettez à jour toutes vos intégrations SDK.

Créer un compte développeur (Admin)

Les comptes développeurs ne s’inscrivent pas en self-service. Un admin les crée :
curl -X POST https://dloopiq.onrender.com/api/v1/admin/developers \
  -H "Authorization: Bearer <admin_jwt>" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "dev@monapp.com",
    "appName": "MonApp Mobile",
    "appUrl": "https://monapp.com"
  }'
Réponse :
{
  "developer": {
    "id": "cmpkb4ghw00016qduu44p7n2r",
    "email": "dev@monapp.com",
    "appName": "MonApp Mobile",
    "apiKey": "cmpkb4ghw00016qduu44p7n2r"
  }
}

Sécurité

  • Les mots de passe sont hashés avec bcrypt (rounds: 12)
  • Les JWTs sont signés HS256 avec JWT_SECRET (64 chars hex)
  • Les clés API sont des cuid — format opaque, difficiles à deviner
  • Toutes les routes sensibles sont rate-limitées (100 req/15min par IP)
  • HTTPS obligatoire en production