Aller au contenu principal

Authentification

Statut

Document de cadrage backend — version initiale.

Vue d'ensemble

L'authentification backend repose sur Laravel Sanctum et une intégration avec les tokens Supabase visibles dans le module Identity.

Le service SupabaseTokenService valide les JWT Supabase avec firebase/php-jwt.

État actuel visible

  • Dépendance laravel/sanctum.
  • Dépendance firebase/php-jwt.
  • Routes auth/exchange, auth/me, auth/logout.
  • Middleware auth:sanctum utilisé sur les routes protégées.
  • Service de décodage JWT Supabase.
  • Profils applicatifs dans le domaine Identity.

Flux cible

Un flux d'authentification peut suivre cette logique :

  1. L'utilisateur s'authentifie via le système front.
  2. Le token Supabase est échangé ou validé côté API.
  3. L'API émet ou utilise un token compatible Sanctum.
  4. Les routes protégées utilisent auth:sanctum.
  5. Les rôles applicatifs sont vérifiés séparément.

Le détail exact doit rester aligné avec l'implémentation du module Identity.

Sources applicatives

Les routes protégées par contexte applicatif utilisent aussi identify.app, qui exige X-App-Source.

Sources acceptées :

  • dmv
  • backoffice
  • playloop
  • assosuite
  • mairie

Principes

  • Ne pas confondre rôle Supabase authenticated et rôles métier DMV.
  • Ne jamais exposer les secrets JWT.
  • Ne pas faire confiance au frontend pour les droits.
  • Garder les réponses d'erreur JSON.
  • Séparer authentification et autorisation.

Points à clarifier

  • Cycle de vie complet des tokens.
  • Expiration et révocation.
  • Authentification des devices PlayLoop.
  • Auth multi-applications côté frontend.
  • Transition entre Supabase Auth et Sanctum à documenter finement.