GitForge

Documentation de l'API Nexus

Le guide complet pour intégrer l'authentification et la gestion utilisateur la plus sécurisée du marché dans vos applications, quel que soit votre langage.

1. Vue d'Ensemble & Clés API

L'API Nexus est structurée autour d'une ressource unique pour l'authentification. Tous les appels nécessitent votre **Clé API** (`X-API-KEY`) pour l'identification de votre application, et un **Token JWT** pour les actions utilisateur spécifiques.

Endpoint de Base :

https://api.nexus-pro.com/v1/auth

Ce chemin est la base de toutes les opérations d'authentification.

Clé API (Sécurité) :

X-API-KEY: VOTRE_CLE_API_SECRETE

À inclure dans l'entête de chaque requête (sauf mention contraire).

2. Flux d'Authentification

2.1 S'inscrire (POST /register)

Crée un nouvel utilisateur. Le système retourne le token JWT si l'inscription est réussie.

cURL (Exemple Rapide)

curl -X POST "https://api.nexus-pro.com/v1/auth/register" \
-H "X-API-KEY: VOTRE_CLE_API_SECRETE" \
-H "Content-Type: application/json" \
-d '{
  "email": "utilisateur@exemple.com",
  "password": "motdepassefort123"
}'

Python (`requests`)

import requests
import json
url = "https://api.nexus-pro.com/v1/auth/register"
headers = {
    "X-API-KEY": "VOTRE_CLE_API_SECRETE",
    "Content-Type": "application/json"
}
payload = {"email": "user@example.com", "password": "strongpassword123"}
response = requests.post(url, headers=headers, json=payload)
print(response.json())

JavaScript (Fetch)

const url = 'https://api.nexus-pro.com/v1/auth/register';
const response = await fetch(url, {
  method: 'POST',
  headers: {
    'X-API-KEY': 'VOTRE_CLE_API_SECRETE',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    email: 'user@example.com',
    password: 'strongpassword123'
  })
});
const data = await response.json();
console.log(data);

2.2 Se connecter (POST /login)

Authentifie un utilisateur existant. La réponse contient le **Token JWT** pour les requêtes futures.

cURL

curl -X POST "https://api.nexus-pro.com/v1/auth/login" \
-H "X-API-KEY: VOTRE_CLE_API_SECRETE" \
-H "Content-Type: application/json" \
-d '{
  "email": "utilisateur@exemple.com",
  "password": "motdepassefort123"
}'

Python (`requests`)

import requests
url = "https://api.nexus-pro.com/v1/auth/login"
headers = {
    "X-API-KEY": "VOTRE_CLE_API_SECRETE",
    "Content-Type": "application/json"
}
payload = {"email": "user@example.com", "password": "strongpassword123"}
response = requests.post(url, headers=headers, json=payload)
token = response.json().get('jwt_token')
print(f"Token: {token}")

3. Gestion des Données Utilisateur (Token Requis)

Toutes les requêtes de cette section doivent inclure l'entête `Authorization: Bearer VOTRE_TOKEN_JWT` obtenu lors de la connexion.

3.1 Récupérer les Informations Utilisateur (GET /user)

Récupère le profil de l'utilisateur associé au Token JWT fourni.

cURL

curl -X GET "https://api.nexus-pro.com/v1/auth/user" \
-H "Authorization: Bearer VOTRE_TOKEN_JWT"

JavaScript (Fetch)

const url = 'https://api.nexus-pro.com/v1/auth/user';
const userToken = localStorage.getItem('nexus_jwt'); // Exemple de récupération
const response = await fetch(url, {
  method: 'GET',
  headers: { 'Authorization': `Bearer ${userToken}` }
});
const data = await response.json();
console.log(data);

3.2 Mettre à Jour les Informations (PUT /user/update)

Permet de modifier les informations de l'utilisateur (nom, prénom, etc.). Seuls les champs fournis sont mis à jour.

cURL

curl -X PUT "https://api.nexus-pro.com/v1/auth/user/update" \
-H "Authorization: Bearer VOTRE_TOKEN_JWT" \
-H "Content-Type: application/json" \
-d '{
  "first_name": "Jean",
  "last_name": "Dupont"
}'

Python (`requests`)

import requests
url = "https://api.nexus-pro.com/v1/auth/user/update"
token = "VOTRE_TOKEN_JWT"
headers = {
    "Authorization": f"Bearer {token}",
    "Content-Type": "application/json"
}
payload = {"first_name": "Jean", "last_name": "Dupont"}
response = requests.put(url, headers=headers, json=payload)
print(response.json())

4. Logs, Erreurs et Tarification

Gestion des Erreurs

Toutes les erreurs API sont retournées avec un code d'état HTTP standard (4xx pour les erreurs clients, 5xx pour les erreurs serveurs). Le corps de la réponse contiendra une description JSON détaillée de l'erreur.

{
  "error": true,
  "status_code": 401,
  "message": "Token JWT manquant ou invalide. Veuillez vous reconnecter."
}

Accès aux Logs Détaillés

Les utilisateurs du **Plan Professionnel** et supérieur bénéficient d'un accès à l'endpoint `/api-logs` pour un historique complet des tentatives de connexion, des échecs d'authentification et des activités du compte. Cette fonctionnalité est essentielle pour le monitoring de sécurité.