Cas d'utilisation — Authentification¶
UC-AUTH-001 · S'inscrire¶
Acteur : Utilisateur non connecté
Précondition : L'utilisateur n'a pas encore de compte
Flux principal (succès)¶
- L'utilisateur accède à la page d'inscription
- Il renseigne son nom, prénom et email
- Il accepte les CGU et la politique de confidentialité (obligatoire)
- Il valide → un code OTP est envoyé à son email
- Il saisit le code OTP reçu → le compte est créé
- Il est invité à s'auto-évaluer (sélection de son niveau parmi les paliers admin)
- Il est invité à compléter son profil (ville + photo optionnelle, étape facultative)
- L'utilisateur accède à sa page d'accueil personnalisée
Flux alternatifs¶
- Email déjà utilisé → Message d'erreur avec proposition de se connecter
- CGU non acceptées → Impossible de valider le formulaire
- Code OTP invalide ou expiré → Message d'erreur, possibilité de redemander un nouveau code
UC-AUTH-002 · Se connecter¶
Acteur : Utilisateur avec un compte existant
Précondition : L'utilisateur a un compte valide et actif
Pas de mot de passe
La connexion se fait uniquement par email + code OTP. L'utilisateur ne crée jamais de mot de passe.
Flux principal (succès)¶
- L'utilisateur saisit son email
- Il clique sur « Recevoir un code »
- Un code OTP est envoyé à son email
- Il saisit le code → il est connecté
- Un token JWT (access + refresh) est généré → session persistante
Flux alternatifs¶
- Email inconnu → Redirection vers la page d'inscription avec l'email pré-rempli, permettant à l'utilisateur de s'inscrire directement
- Code OTP expiré → Possibilité de redemander un nouveau code
sequenceDiagram
participant U as Utilisateur
participant F as Frontend
participant A as API Laravel
participant M as Service Email
U->>F: Saisit son email
F->>A: POST /api/v1/auth/request-otp
A->>M: Envoie le code OTP
M-->>U: Email avec code OTP
U->>F: Saisit le code OTP
F->>A: POST /api/v1/auth/verify-otp
A-->>F: { access_token, refresh_token }
F-->>U: Redirige vers dashboard UC-AUTH-003 · Se déconnecter¶
Acteur : Utilisateur connecté
Flux principal¶
- L'utilisateur clique sur « Se déconnecter »
- Le frontend envoie
POST /api/v1/auth/logoutavec le token - Le token est invalidé côté serveur (blacklist JWT)
- Le frontend supprime le token du stockage mémoire
- Redirection vers la page de connexion
UC-AUTH-004 · S'auto-évaluer (niveau initial)¶
Acteur : Utilisateur nouvellement inscrit
Précondition : Compte créé et email validé par OTP
Flux principal¶
- L'utilisateur voit les paliers de niveau avec leurs critères descriptifs (définis par l'admin)
- Il consulte chaque palier (valeur, nom, description)
- Il sélectionne le palier qui lui correspond le mieux
- Son niveau (ex :
4.5) et un score de fiabilité initial faible sont enregistrés - L'utilisateur est redirigé vers l'étape de complétion du profil (UC-AUTH-006)
Niveau non modifiable
Après cette auto-évaluation initiale, l'utilisateur ne peut plus modifier son niveau manuellement. Il évolue uniquement selon les résultats de ses parties compétitives.
UC-AUTH-006 · Compléter son profil (étape 3/3)¶
Acteur : Utilisateur nouvellement inscrit
Précondition : Niveau auto-évalué (UC-AUTH-004 complété)
Flux principal¶
- L'utilisateur voit un formulaire de complétion du profil (étape 3/3)
- Il peut renseigner sa ville pour faciliter la recherche de partenaires proches
- Il peut optionnellement ajouter une photo de profil
- Il valide → les informations sont enregistrées via
PUT /api/v1/profile - L'utilisateur est redirigé vers sa page d'accueil personnalisée
Flux alternatif¶
- L'utilisateur saute cette étape → Il est redirigé directement vers l'accueil sans compléter
UC-AUTH-005 · Supprimer son compte (RGPD)¶
Acteur : Utilisateur connecté
Flux principal¶
- L'utilisateur accède à Paramètres → Mon compte → Supprimer mon compte
- Un écran de confirmation présente les données supprimées et conservées (anonymisées)
- L'utilisateur confirme explicitement (case à cocher)
- Le compte est désactivé immédiatement, la session est fermée
- Les parties en cours dont l'utilisateur est inscrit : il est retiré automatiquement
- Les parties dont il est créateur et encore ouvertes sont annulées automatiquement
- Un email de confirmation de suppression est envoyé
- Toutes les données personnelles sont effacées sous 30 jours (RGPD)