Règles métier — Authentification¶
Ce document décrit les règles métier du domaine Authentification. Ces règles constituent la source de vérité fonctionnelle, indépendamment de l'implémentation technique.
Pas de mot de passe
Primatch utilise l'authentification par code OTP envoyé par email. Il n'y a pas de mot de passe à créer ni à mémoriser.
Inscription¶
RB-AUTH-001 — Unicité de l'email¶
- Chaque compte est identifié par une adresse email unique
- La vérification est insensible à la casse (
John@example.com≡john@example.com) - ❌ Si l'email est déjà utilisé → erreur avec proposition de se connecter
RB-AUTH-002 — Données obligatoires à l'inscription¶
Les champs suivants sont obligatoires :
| Champ | Règle |
|---|---|
| Nom | 2 à 50 caractères |
| Prénom | 2 à 50 caractères |
| Format valide |
RB-AUTH-003 — Acceptation des CGU obligatoire¶
- L'utilisateur doit accepter les CGU et la politique de confidentialité pour valider son inscription
- ❌ Sans acceptation → inscription bloquée
RB-AUTH-004 — Vérification de l'email par OTP¶
- Un code OTP est envoyé par email à l'adresse fournie
- L'utilisateur doit saisir ce code pour valider son compte
- Le code OTP expire après un délai raisonnable (ex : 15 minutes)
- ❌ Code invalide ou expiré → nouveau code demandable
RB-AUTH-005 — Auto-évaluation du niveau à l'inscription¶
- Après validation du compte, l'utilisateur est invité à s'auto-évaluer
- Il consulte les critères descriptifs de chaque palier de niveau (définis par l'admin)
- Il sélectionne le palier qui lui correspond le mieux
- Le niveau est exprimé en nombre décimal entre 1.0 et 10.0 (ex : 3.5, 5.0, 7.2)
- Un score de fiabilité (%) est attribué automatiquement, initialement faible (auto-déclaration)
- L'utilisateur ne peut pas modifier son niveau manuellement après la déclaration initiale
Connexion¶
RB-AUTH-010 — Authentification par OTP email¶
- La connexion se fait uniquement par email + code OTP (pas de mot de passe)
- L'utilisateur saisit son email → reçoit un OTP → saisit le code → est connecté
- Session persistante via token JWT avec rafraîchissement
RB-AUTH-011 — Expiration de session¶
- Un token expiré retourne
401 Unauthorized - Le client utilise le refresh token pour obtenir un nouveau token d'accès
- Si le refresh token est également expiré → déconnexion forcée, nouvelle connexion par OTP requise
Niveau et fiabilité¶
RB-AUTH-020 — Évolution du niveau¶
- Seules les parties compétitives impactent le niveau et le score de fiabilité
- Les parties amicales n'ont aucun impact sur le niveau
- Si les résultats sont cohérents avec le niveau déclaré → fiabilité augmente
- Si incohérence détectée (ex : débutant qui gagne systématiquement) → niveau recalculé automatiquement
RB-AUTH-021 — Paliers de niveau¶
- Les paliers sont définis et gérés par l'administrateur (valeur, nom, critères descriptifs)
- Exemple de référence : 1.0–2.0 Débutant, 2.5–4.0 Initié, 4.5–6.0 Intermédiaire, 6.5–7.5 Avancé, 8.0–9.0 Expert, 9.5–10.0 Compétiteur
Droits et permissions¶
RB-AUTH-030 — Rôles utilisateurs¶
| Rôle | Description | Attribution |
|---|---|---|
player | Joueur standard | Par défaut à l'inscription |
club_manager | Gestionnaire de club | Après validation admin |
admin | Accès complet à la plateforme | Seeder / admin uniquement |
RB-AUTH-031 — Suppression de compte (RGPD)¶
- Accessible depuis Paramètres → Mon compte → Supprimer mon compte
- Confirmation explicite requise (dans ce contexte sans mot de passe : case à cocher de confirmation)
- Données personnelles supprimées sous 30 jours (conformité RGPD)
- Résultats archivés liés à d'autres joueurs conservés de façon anonymisée
- Un email de confirmation de suppression est envoyé