Aller au contenu principal

API Authentification

Objectif

Authentifier un utilisateur, exposer son contexte courant et permettre la déconnexion.

Périmètre

Identité utilisateur, session/token backend, contexte courant et sortie de session.

Acteurs/applications consommatrices

  • DMV public.
  • Backoffice.
  • PlayLoop admin.
  • AssoSuite.
  • Mairie.

Authentification requise

  • POST /api/v1/auth/exchange : public dans le code visible.
  • GET /api/v1/auth/me et POST /api/v1/auth/logout : auth:sanctum.

Permissions/RBAC

  • L’authentification ne suffit pas à autoriser une action métier.
  • Les rôles/scopes doivent être vérifiés par les endpoints métier.

Endpoints actuels visibles si confirmés

MéthodeRouteStatut
POST/api/v1/auth/exchangeConfirmé.
GET/api/v1/auth/meConfirmé.
POST/api/v1/auth/logoutConfirmé.

Endpoints cibles proposés si utile

  • Aucun endpoint supplémentaire proposé à ce stade.
  • Le contrat exact de exchange doit être clarifié selon le provider d’identité final.

Exemple de requête

GET /api/v1/auth/me
Authorization: Bearer <token>
X-App-Source: dmv

Exemple de réponse succès

{
"user": {
"user_id": "user-uuid",
"email": "utilisateur@example.test",
"roles": ["user"],
"acteur_ids": [],
"contributor_id": null,
"commune_id": null,
"origin": "dmv"
}
}

Exemple d’erreur

{
"message": "Unauthenticated."
}

Pagination si applicable

Non applicable.

Rate limiting si applicable

Recommandé sur auth/exchange et logout pour limiter brute force et abus.

Audit/logs si applicable

  • Connexions, échanges de token et déconnexions sensibles à tracer selon besoin sécurité.
  • Ne pas logger les tokens en clair.

Sécurité

  • Tokens jamais exposés dans logs ou URLs.
  • X-App-Source ne remplace pas l’authentification.
  • Provider final à clarifier entre Supabase Auth, Sanctum et Firebase JWT.

État actuel vs cible

SujetÉtat actuelCible
Routes authConfirmées.Contrat payload stabilisé.
ProviderPlusieurs traces visibles.Provider central et validation Laravel clarifiés.

Points à confirmer

  • Payload exact de auth/exchange.
  • Durée et renouvellement des sessions.
  • Mapping provider utilisateur vers utilisateur métier.