authentification
Cette API permet aux utilisateurs du backoffice de s’authentifier et de gérer leur accès à la plateforme Connect My Zone.
Login
Authentification d'un utilisateur avec son email et son mot de passe.
Endpoint : POST /login
Authentification : Aucune
Headers requis :
Accept: application/json
Paramètres :
| Champ | Type | Requis | Description |
|---|---|---|---|
email | string | Non* | Adresse email de l'utilisateur |
password | string | Oui | Mot de passe de l'utilisateur |
Notes :
- Vous devez fournir email ou phone (pas les deux)
Requête avec email:
curl -X POST https://api-services.mazone-test.ansut.ci/auth/v1.0/users/backoffice/login \
-H "Accept: application/json" \
-F "email=utilisateur@exemple.com" \
-F "password=monMotDePasse123"
- Succès - Compte actif sans 2FA (200)
L'utilisateur est authentifié et reçoit son token d'accès.
{
"error": false,
"message": "Successfully",
"data": {
"user": {
"id": "019e0224-fdda-7074-b959-1851680bcad0",
"last_name": "Abdallah",
"first_name": "Diarra",
"email": "utilisateur@exemple.com",
"phone": "0544411389",
"email_verified_at": "2026-05-07 11:23:33",
"profile": "utilisateur-standard",
"status": "active",
"photo": null
},
"token": {
"value": "33|eal7VIlccnooIKTC9kgmBimAfKYuzIgQP9qyOuHhccd8fb23",
"expiresAt": null
}
}
}
- Succès - Compte en attente (pending) ou 2FA activé (200)
Un code OTP à 4 chiffres est envoyé par email à l'utilisateur (valable 5 minutes). La réponse contient uniquement l'email.
"utilisateur@exemple.com"
- Erreur - Identifiants incorrects par email (400)
{
"error": true,
"statusCode": 400,
"message": "Email ou mot de passe incorrect"
}
- Erreur - Identifiants incorrects par téléphone (400)
{
"error": true,
"statusCode": 400,
"message": "Numéro de téléphone ou mot de passe incorrect"
}
- Erreur - Compte temporairement bloqué (400)
{
"error": true,
"statusCode": 400,
"message": "Votre compte est temporairement bloqué. Veuillez réessayer dans X minutes."
}
Après 3 tentatives de connexion échouées consécutives.
Règles de sécurité
| Règle | Valeur |
|---|---|
| Tentatives maximales avant blocage | 3 échecs consécutifs |
| Durée du blocage | Configurable (ex: 3 minutes) |
| Durée de validité de l'OTP | 5 minutes |
Informations tracées dans les logs :
-
Adresse IP
-
User-Agent
-
Type d'action (tentative, succès, échec, blocage)
Notes importantes
-
Le champ channel=mobile est à utiliser uniquement pour l'application mobile
-
Les comptes avec statut pending ou avec 2FA activée nécessitent une validation OTP
-
Chaque tentative échouée incrémente le compteur interne attempts
-
Après déblocage, le compteur de tentatives est réinitialisé
Envoi d'OTP par email
Cette API permet d'envoyer un code OTP (One-Time Password) à 4 chiffres par email à un utilisateur. Le code est valable 5 minutes.
Endpoint : POST /send-otp
Authentification : Aucune
Headers requis :
Accept: application/json
Content-Type: application/json
Paramètres :
| Champ | Type | Requis | Description |
|---|---|---|---|
email | string | Oui | Adresse email du compte utilisateur |
Requête standard :
curl -X POST https://api-services.mazone-test.ansut.ci/auth/v1.0/users/backoffice/send-otp \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"email": "utilisateur@exemple.com"
}'
Réponses
- Succès (200)
Un code OTP à 4 chiffres a été envoyé par email. La réponse contient l'email de l'utilisateur.
{
"error": false,
"statusCode": 200,
"message": "utilisateur@exemple.com"
}
- Erreur - Utilisateur non trouvé (400)
{
"error": true,
"statusCode": 400,
"message": "Utilisateur non trouvé."
}
- Erreur - Trop de requêtes / Rate limiting (429)
Un délai d'attente est imposé entre deux envois d'OTP pour éviter les abus.
{
"error": true,
"statusCode": 429,
"message": "Trop de tentatives. Veuillez patienter avant de renvoyer un code."
}
Règles de sécurité
| Règle | Valeur |
|---|---|
| Format de l'OTP | 4 chiffres (1000 à 9999) |
| Durée de validité de l'OTP | 5 minutes |
| Rate limiting | Oui (délai entre deux envois) |
| Clé de cache rate limiting | otp:send:email |
Validation d'OTP par email (connexion)
Cette API permet de valider un code OTP reçu par email pour finaliser l'authentification d'un utilisateur avec un compte en statut pending ou avec 2FA activée.
Endpoint : POST /validate-otp
Authentification : Aucune
Headers requis :
Accept: application/json
Content-Type: application/json
Paramètres :
| Champ | Type | Requis | Description |
|---|---|---|---|
email | string | Oui | Adresse email de l'utilisateur |
otp | string | Oui | Code OTP à 4 chiffres reçu par email |
Requête :
curl -X POST https://api-services.mazone-test.ansut.ci/auth/v1.0/users/backoffice/validate-otp \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"email": "utilisateur@exemple.com",
"otp": "1234"
}'
Réponses
- Succès - Authentification complète (200)
Le code OTP est valide, l'utilisateur est authentifié et reçoit son token d'accès.
{
"error": false,
"message": "Successfully",
"data": {
"user": {
"id": "019e0224-fdda-7074-b959-1851680bcad0",
"last_name": "Abdallah",
"first_name": "Diarra",
"email": "utilisateur@exemple.com",
"phone": "0544411389",
"email_verified_at": "2026-05-07 11:23:33",
"profile": "utilisateur-standard",
"status": "active",
"photo": null
},
"token": {
"value": "33|eal7VIlccnooIKTC9kgmBimAfKYuzIgQP9qyOuHhccd8fb23",
"expiresAt": null
}
}
}
- Erreur - Utilisateur non trouvé (400)
{
"error": true,
"statusCode": 400,
"message": "Utilisateur non trouvé."
}
- Erreur - Code OTP incorrect (400)
{
"error": true,
"statusCode": 400,
"message": "Code OTP incorrect"
}
- Erreur - Code OTP expiré (400)
{
"error": true,
"statusCode": 400,
"message": "Code OTP expiré"
}
Comportement détaillé
Validation : L'email est validé et parsé
Recherche utilisateur : L'utilisateur est recherché par son email
Vérification existence : Si l'utilisateur n'existe pas → erreur
Vérification code OTP : Si le code ne correspond pas → erreur
Vérification expiration : Si l'OTP a expiré (plus de 5 minutes) → erreur
Nettoyage OTP : Suppression de l'OTP et de sa date d'expiration
Activation du compte :
Statut passe à active
email_verified_at est défini (si non déjà fait)
Déblocage : Le compte est débloqué si nécessaire
Génération token : Création d'un token d'authentification
Log : Enregistrement de la connexion dans les logs
Réponse : Retourne les informations utilisateur et le token
Déconnexion
Cette API permet à un utilisateur de se déconnecter en révoquant son token d'authentification actuel.
Endpoint : PUT /logout
Authentification : Bearer Token
Headers requis : Accept: application/json
Requête :
curl -X PUT https://api-services.mazone-test.ansut.ci/auth/v1.0/users/backoffice/logout \
-H "Authorization: Bearer 33|eal7VIlccnooIKTC9kgmBimAfKYuzIgQP9qyOuHhccd8fb23" \
-H "Accept: application/json"
Réponse succès (200) :
{
"error": false,
"message": "Déconnexion réussie."
}