Authentification Membre
Points de terminaison pour l'authentification des membres via OTP. Ces endpoints sont partagés entre toutes les APIs (Loyalty, Cashback).
/api/v1/auth/member/
Vérifier l'Existence d'un Membre
/api/v1/auth/member/check
Vérifier si un compte membre existe avant d'afficher le formulaire approprié (connexion ou inscription).
Corps de la Requête
{
"email": "user@example.com"
}
email (string, requis sans phone) - Adresse email
phone (string, requis sans email) - Numéro de téléphone
Réponse (Membre Existe)
{
"success": true,
"data": {
"exists": true,
"is_active": true,
"member": {
"email": "us**@ex*****.com",
"phone": null
}
}
}
Réponse (Membre Non Trouvé)
{
"success": true,
"data": {
"exists": false,
"registration_endpoint": "/auth/member/register"
}
}
Inscription
/api/v1/auth/member/register
Créer un nouveau compte membre. Un code OTP est automatiquement envoyé par email après l'inscription.
Corps de la Requête
{
"name": "Jean Dupont",
"email": "jean@example.com",
"phone": "12345678",
"accepts_emails": true
}
name (string, requis) - Nom complet
email (string, requis) - Adresse email (unique)
phone (string, requis) - Numéro de téléphone (unique)
accepts_emails (boolean, optionnel) - Accepte les emails marketing
Réponse
{
"success": true,
"data": {
"message": "Account created successfully. Please verify your email with the OTP code sent.",
"member": {
"id": 456,
"name": "Jean Dupont",
"email": "je**@ex*****.com",
"phone": "12****78"
},
"otp_expires_in_minutes": 10,
"otp_code": "123456" // Only in test mode
}
}
Demander un Code OTP
/api/v1/auth/member/request-otp
Demander un code OTP pour l'authentification d'un membre existant.
member_not_found sera retournée avec requires_registration: true.
Corps de la Requête
{
"email": "jean@example.com"
}
Réponse (Succès)
{
"success": true,
"data": {
"message": "OTP code sent successfully",
"expires_in_minutes": 10,
"member": {
"email": "je**@ex*****.com",
"phone": null
},
"otp_code": "123456" // Only in test mode
}
}
Réponse (Membre Non Trouvé)
{
"success": false,
"error": {
"code": "member_not_found",
"message": "No account found with this email address. Please register first.",
"requires_registration": true,
"registration_endpoint": "/auth/member/register"
}
}
Vérifier le Code OTP
/api/v1/auth/member/verify-otp
Vérifier le code OTP et obtenir un token d'authentification membre.
Corps de la Requête
{
"email": "jean@example.com",
"code": "123456"
}
Réponse
{
"success": true,
"data": {
"member_token": "dmt_abc123xyz...",
"expires_at": "2025-01-20T15:30:00Z",
"expires_in_minutes": 60,
"member": {
"id": 456,
"email": "je**@ex*****.com",
"phone": "12****78",
"name": "Jean Dupont"
}
}
}
Rafraîchir le Token
/api/v1/auth/member/refresh
Rafraîchir un token membre qui expire bientôt.
En-têtes
X-App-Id: app_abc123...
X-Api-Key: test_xyz789...
X-Member-Token: dmt_abc123xyz...
Réponse
{
"success": true,
"data": {
"member_token": "dmt_new_token...",
"expires_at": "2025-01-20T16:30:00Z",
"expires_in_minutes": 60
}
}
Déconnexion
/api/v1/auth/member/logout
Invalider le token membre actuel.
Réponse
{
"success": true,
"data": {
"message": "Successfully logged out"
}
}