Authentification
Vue d'ensemble
Cette section présente l'ensemble des endpoints dédiés à l'authentification et à la gestion des sessions utilisateurs. Elle constitue la couche de sécurité fondamentale de notre API, permettant l'identification et l'autorisation des utilisateurs.
Fonctionnalités couvertes
Notre API d'authentification offre un système complet et sécurisé comprenant :
Authentification standard
- Connexion par nom d'utilisateur/mot de passe
- Génération de jetons JWT avec date d'expiration
- Option "Se souvenir de moi" pour les sessions prolongées
Authentification à double facteur (2FA)
- Initialisation du processus d'authentification avec détection des méthodes OTP disponibles
- Envoi de codes OTP par SMS, e-mail ou les deux
- Vérification des codes OTP pour finaliser la connexion
Gestion des sessions
- Vérification du statut d'authentification en cours
- Déconnexion sécurisée des sessions actives
Sécurité et flux d'authentification
L'API supporte deux modes d'authentification :
- Mode simple : Authentification directe avec
/authenticate
- Mode 2FA : Processus en plusieurs étapes avec
/authenticate/init
, réception et vérification OTP
Tous les endpoints utilisent le préfixe /api/v1/authenticate
et retournent des jetons JWT sécurisés pour l'autorisation des requêtes subséquentes.
Structure des réponses
Les réponses suivent un format standardisé avec un message de statut et un corps contenant les données pertinentes (jetons, dates d'expiration, méthodes disponibles).
| Action | Endpoint | |---|---| | POST | /api/v1/authenticate | | POST | /api/v1/authenticate/init | | POST | /api/v1/authenticate/receive-otp | | POST | /api/v1/authenticate/verify-otp | | GET | /api/v1/authenticate | | GET | /api/v1/logout |
Authentification
Endpoint: POST /api/v1/authenticate
Authentifie un utilisateur en utilisant son nom d'utilisateur et mot de passe.
Corps de la Requête
{
"username": "utilisateur@exemple.com",
"password": "password",
"rememberMe": true
}
Réponse
{
"message": "OK",
"body": {
"id_token": "jeton-jwt",
"expired_date": "2025-06-01T00:05:26.143Z"
}
}
Exemple
curl -X POST https://api.nourama.com/api/v1/authenticate \
-H "Content-Type: application/json" \
-d '{"username": "utilisateur@exemple.com", "password": "motdepasse"}'
Initialisation de L'Authentification
Endpoint: POST /api/v1/authenticate/init
Initie la connexion et retourne les méthodes OTP disponibles.
Corps de la Requête
{
"username": "utilisateur@exemple.com",
"password": "password",
"rememberMe": true
}
Réponse
{
"message": "OK",
"body": {
"availableVerificationMethod": {
"additionalProp1": "string",
"additionalProp2": "string"
}
}
}
Reception de l'otp
Endpoint: POST /api/v1/authenticate/receive-otp
Envoie un code OTP à l'utilisateur.
Corps de la Requête
{
"login": "utilisateur@exemple.com",
"method": "EMAIL_AND_SMS"
}
Réponse
{
"string"
}
Vérification de L'OTP
Endpoint: POST /api/v1/authenticate/verify-otp
Vérifie le code OTP et retourne un jeton JWT.
Corps de la Requête
{
"login": "utilisateur@exemple.com",
"password": 123456,
"rememberMe": true
}
Réponse
{
"message": "OK",
"body": {
"id_token": "jeton-jwt",
"expired_date": "2025-06-01T00:05:26.143Z"
}
}
Vérification de la Session
Endpoint: GET /api/v1/authenticate
Vérifie si la session actuelle est authentifiée.
Réponse
{
"message": "success message",
"body": {}
}
Déconnection de la session en cours
GET /api/v1/logout
Déconnecte la session actuelle.
Réponse
{
"message": "success message"
"body": {}
}