Présentation Générale

Système d'authentification complet pour la plateforme front-office de YAKO AFRICA Assurances Vie.


📊 Statistiques du système

FonctionnalitéDescription
👥 Gestion utilisateursClients, agents, administrateurs
🔐 SécuritéGel progressif 3 niveaux (10s, 3min, 30min)
🔄 Dégel automatiqueSans intervention admin
📧 NotificationsEmail + SMS
⏱️ SessionExpiration après 15min d'inactivité

Authentification

POST /auth/register

Description : Inscription d'un nouvel utilisateur

{
    "nom": "string (requis)",
    "prenoms": "string (requis)",
    "email": "string (requis, unique)",
    "mobile": "string (optionnel)",
    "telephone": "string (optionnel)",
    "typ_user": "string (requis) [client, user_interne, user_partner, admin, autre]",
    "role": "string (requis) [super_admin, admin, agent, client]",
    "password": "string (requis, min:8)",
    "password_confirmation": "string (requis)",
    "agence_libelle": "string (optionnel)"
}

🧪 Tester l'endpoint

POST /auth/login

Description : Connexion utilisateur

{
    "login": "string (requis) - email ou code agent",
    "password": "string (requis)"
}

🧪 Tester l'endpoint

POST /auth/forgot-password

Description : Demande de réinitialisation du mot de passe

{
    "email": "string (requis)"
}

🧪 Tester l'endpoint

POST /auth/reset-password

Description : Réinitialisation du mot de passe

{
    "token": "string (requis)",
    "email": "string (requis)",
    "password": "string (requis, min:8)",
    "password_confirmation": "string (requis)"
}
POST /auth/change-password 🔒 Auth required

Description : Changement de mot de passe (utilisateur connecté)

{
    "current_password": "string (requis)",
    "new_password": "string (requis, min:8)",
    "new_password_confirmation": "string (requis)"
}

Cron - Dégel Automatique NOUVEAU v2.0

GET /cron/check-unfreeze

Description : Vérifie et dégèle automatiquement un compte. Utilisé par le cron front-end.

Paramètre query: ?login=email@example.com

🧪 Tester l'endpoint

GET /cron/frozen-accounts

Description : Liste tous les comptes actuellement gelés avec leur temps restant.

GET /cron/freeze-status/{uuid}

Description : Statut de gel d'un utilisateur spécifique.

Sessions

GET /session/current 🔒 Auth required

Récupère la session actuelle de l'utilisateur

POST /session/extend 🔒 Auth required

Prolonge la session (reset du timer d'inactivité à 15 minutes)

GET /session/active 🔒 Auth required

Liste toutes les sessions actives de l'utilisateur

DELETE /session/terminate/{sessionId} 🔒 Auth required

Termine une session spécifique

Dashboard

GET /dashboard 🔒 Auth required

Récupère les données du tableau de bord (utilisateur, rôles, statistiques)

🧪 Tester l'endpoint

GET /dashboard/profile 🔒 Auth required

Récupère le profil de l'utilisateur connecté

PUT /dashboard/profile 🔒 Auth required

Met à jour le profil utilisateur

Administration

GET /admin/users 👑 Admin only

Liste paginée des utilisateurs

🧪 Tester l'endpoint

GET /admin/users/stats 👑 Admin only

Statistiques globales des utilisateurs

POST /admin/users/{uuid}/activate 👑 Admin only

Active un compte utilisateur

{ "reason": "string (optionnel)" }
POST /admin/users/{uuid}/freeze 👑 Admin only

Gèle temporairement un compte

{ "reason": "string (requis)", "duration_minutes": "int (optionnel, défaut: 30)" }
POST /admin/users/{uuid}/unfreeze 👑 Admin only

Dégèle un compte manuellement

{ "reason": "string (optionnel)" }

Codes d'Erreur API

HTTPCode APIDescription
200SUCCESSSuccès
201CREATEDCréé avec succès
400INVALID_REQUESTRequête invalide
401INVALID_CREDENTIALSIdentifiants invalides
401INACTIVITY_TIMEOUTSession expirée par inactivité
403ACCOUNT_DEACTIVATEDCompte désactivé
403ACCOUNT_BLOCKEDCompte bloqué définitivement
403FIRST_LOGIN_REQUIREDPremière connexion obligatoire
403PASSWORD_EXPIREDMot de passe expiré
423ACCOUNT_FROZENCompte gelé temporairement
404NOT_FOUNDRessource non trouvée
422VALIDATION_ERRORErreur de validation
429RATE_LIMIT_EXCEEDEDTrop de tentatives de connexion