Aller au contenu principal

Authentification

Connexion

POST /auth/login
{
login: string; // email ou nom d'utilisateur
password: string;
type?: "admin" | "client" | "support";
}

Réponse (data) :

{
token: string;
role: string;
}
Incohérence dans le code

Le champ type n'est envoyé que par un des trois points d'appel du frontend (auth-service.ts) ; les deux autres (user.service.ts, user.actions.ts) appellent le même endpoint sans ce champ. Le type TypeScript AuthResponse ne déclare que { token, role }, mais le code qui traite la réponse de connexion lit aussi data.user — l'API renvoie donc vraisemblablement un objet utilisateur en plus, simplement non répercuté dans le typage frontend. Ne vous fiez pas uniquement aux types TypeScript ici : vérifiez la réponse réelle de l'API.

Le token est stocké côté serveur dans un cookie dont le nom dépend de type : client_token, admin_token ou support_token (des variantes admin_proprio_token / admin_support_token sont également prévues dans le code de nettoyage des cookies, sans point d'appel identifié qui les écrit). Un cookie current_token_type indique quel token est actif pour la session en cours.

Rafraîchissement du token

POST /auth/refresh
Authorization: Bearer <token actuel>

Aucun corps de requête — le rafraîchissement s'authentifie uniquement via le token actuel dans l'en-tête Authorization.

Réponse :

{
success: boolean;
message: string;
data: {
newToken: string;
role: string;
};
}

Le frontend planifie un rafraîchissement proactif dès que le JWT est décodé et que son expiration (exp, seule information exploitée du payload) approche à moins de 2 minutes, avec une logique de retry limitée pour éviter les boucles en cas d'échec.

Autres endpoints

EndpointUsage
POST /auth/registerInscription voyageur
POST /auth/register-ownerInscription propriétaire
POST /auth/verify-emailVérification d'email
POST /auth/google, POST /auth/facebookConnexion sociale
GET /auth/check-accountVérifie l'existence d'un compte
POST /auth/set-initial-passwordDéfinit le mot de passe initial (compte activé par un tiers)
POST /user/logoutDéconnexion
/password_reset/*Flux de réinitialisation (vérification email, code, nouveau mot de passe)
remarque

Il n'existe pas de récepteur de webhook dans le frontend Next.js — voir Webhooks pour le détail de cette limite.