Aller au contenu

Accès public aux parties

Vue d'ensemble

Les utilisateurs non authentifiés peuvent consulter la liste des parties publiques et leurs détails. Ce mécanisme encourage les visiteurs à s'inscrire en leur montrant l'activité de la plateforme avant de créer un compte.

Règles métier

Consultation publique

Règle Description
R-PUB-01 L'endpoint GET /api/v1/games est accessible sans authentification
R-PUB-02 L'endpoint GET /api/v1/games/{id} est accessible sans authentification
R-PUB-03 Les données sensibles (emails, numéros de téléphone) ne sont pas exposées dans les réponses publiques
R-PUB-04 Les actions (rejoindre, créer, modifier) nécessitent une authentification

Redirection post-authentification

Règle Description
R-REDIR-01 Lorsqu'un utilisateur non authentifié tente une action protégée, l'URL cible est sauvegardée dans le sessionStorage
R-REDIR-02 Après authentification réussie (login + OTP), l'utilisateur est redirigé vers l'URL sauvegardée
R-REDIR-03 Si aucune URL n'est sauvegardée, la redirection par défaut est /player/matches
R-REDIR-04 L'URL sauvegardée est consommée (supprimée) après utilisation pour éviter les redirections parasites
R-REDIR-05 Le mécanisme de sauvegarde utilise sessionStorage (pas localStorage) pour ne pas persister entre sessions

Persistance JWT

Règle Description
R-JWT-01 Le token JWT est stocké dans localStorage et restauré au chargement de l'application
R-JWT-02 En cas de token expiré (erreur 401), un refresh automatique est tenté via POST /api/v1/auth/refresh
R-JWT-03 Si le refresh échoue, l'utilisateur est déconnecté et redirigé vers /login

Pages publiques

/games — Liste des parties

  • Affiche toutes les parties publiques ouvertes
  • Filtres : type (amical/compétitif), environnement (indoor/outdoor/semi-couvert)
  • Tri : par date ou par distance (nécessite la géolocalisation)
  • Recherche textuelle par nom de club ou lieu
  • Vue liste et vue carte
  • Bannière d'incitation à s'inscrire pour les utilisateurs non connectés
  • Bouton "Rejoindre" redirige vers /signup avec sauvegarde de l'URL cible

/games/:id — Détail d'une partie

  • Affiche les informations complètes : lieu, date, durée, niveau, joueurs inscrits
  • Indicateur de réservation de terrain
  • Fiche des joueurs (prénom, initiale du nom, niveau)
  • CTA d'inscription/connexion pour les non-authentifiés
  • Bouton "Voir le détail complet" pour les utilisateurs authentifiés