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/meetPOST /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éthode | Route | Statut |
|---|---|---|
POST | /api/v1/auth/exchange | Confirmé. |
GET | /api/v1/auth/me | Confirmé. |
POST | /api/v1/auth/logout | Confirmé. |
Endpoints cibles proposés si utile
- Aucun endpoint supplémentaire proposé à ce stade.
- Le contrat exact de
exchangedoit ê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-Sourcene remplace pas l’authentification.- Provider final à clarifier entre Supabase Auth, Sanctum et Firebase JWT.
État actuel vs cible
| Sujet | État actuel | Cible |
|---|---|---|
| Routes auth | Confirmées. | Contrat payload stabilisé. |
| Provider | Plusieurs 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.