v1.0 Novembre 2025
5.2.1

Diagramme de Séquence
Inscription Client

La solution de cashback nouvelle génération

24 novembre 2025
Version 1.0
1

OBJECTIF DU DOCUMENT

Ce document présente les diagrammes de séquence détaillés du processus d'inscription d'un nouveau client sur l'application mobile REWAPP. Il couvre les trois méthodes d'inscription disponibles :

  • Inscription par Email/Mot de passe avec validation email
  • Inscription via Google OAuth2
  • Inscription via Apple Sign In (iOS uniquement)

Chaque diagramme illustre les interactions temporelles entre les différents composants du système, incluant les cas nominaux et les cas d'erreur.

2

ACTEURS DU SYSTÈME

2.1 Acteurs Principaux

Acteurs du Processus d'Inscription

Acteur Type Description
Client Utilisateur Personne souhaitant créer un compte REWAPP (18 ans minimum)
Application Mobile Frontend Application Angular + Ionic (iOS/Android) interfaçant avec l'utilisateur
API Gateway Infrastructure Point d'entrée sécurisé des requêtes (Kong / AWS API Gateway)
Service Authentification Backend Microservice NestJS gérant l'authentification et les utilisateurs
Service Email Externe SendGrid/Brevo pour l'envoi des emails de validation
Base de Données Stockage PostgreSQL stockant les données utilisateurs
Redis Cache Cache Redis pour le stockage temporaire des tokens de validation
Google OAuth Externe Service d'authentification Google
Apple Sign In Externe Service d'authentification Apple (iOS)
3

PRÉ-REQUIS

3.1 Pré-requis Fonctionnels

  • L'application mobile est installée sur le terminal de l'utilisateur
  • L'utilisateur a une connexion internet active
  • L'utilisateur possède une adresse email valide
  • L'utilisateur a 18 ans ou plus

3.2 Pré-requis Techniques

  • L'API Gateway est opérationnel
  • Le Service Authentification est disponible
  • La Base de Données PostgreSQL est accessible
  • Le service d'envoi d'emails est fonctionnel
  • Les services OAuth (Google/Apple) sont accessibles
4

DIAGRAMME DE SÉQUENCE - INSCRIPTION EMAIL/MOT DE PASSE

4.1 Cas Nominal

Diagramme de Séquence - Inscription Email/Mot de Passe
5

DIAGRAMME DE SÉQUENCE - INSCRIPTION GOOGLE OAUTH2

5.1 Cas Nominal

Diagramme de Séquence - Google OAuth2
FLUX GOOGLE OAUTH2

L'authentification Google permet une inscription rapide en récupérant automatiquement l'email, le prénom et le nom depuis le compte Google. L'email est considéré comme vérifié.

6

DIAGRAMME DE SÉQUENCE - INSCRIPTION APPLE SIGN IN

6.1 Cas Nominal (iOS uniquement)

IMPORTANT - APPLE SIGN IN

Apple ne renvoie les informations utilisateur (prénom, nom, email) QU'À LA PREMIÈRE CONNEXION. Le stockage de ces données est obligatoire lors de la première authentification.

Diagramme de Séquence - Apple Sign In
7

DESCRIPTION DÉTAILLÉE DES ÉTAPES

7.1 Inscription Email/Mot de Passe

Étapes du Processus Email/MDP

# Composant Action Description
1ClientAccès formulaireL'utilisateur accède à l'écran d'inscription depuis l'onboarding ou l'écran de connexion
2ApplicationAffichage formulairePrésentation des champs : Prénom, Nom, Email, Mot de passe, Confirmation MDP, Checkbox CGU
3ClientSaisie donnéesL'utilisateur remplit tous les champs du formulaire
4ApplicationValidation temps réelVérification du format email (RFC 5322), affichage indicateur force mot de passe
5ClientAcceptation CGUL'utilisateur coche obligatoirement les CGU pour continuer
6ClientSoumissionClic sur le bouton "Créer mon compte"
7ApplicationValidation clientVérification de tous les champs obligatoires et formats avant envoi
8API GatewayRate limitingVérification du nombre de requêtes pour éviter les abus
9Service AuthVérification unicitéRequête en base pour vérifier si l'email existe déjà
10Service AuthHashage MDPHashage du mot de passe avec bcrypt (cost factor: 12)
11Service AuthCréation tokenGénération d'un UUID pour la validation email (validité 24h)
12Service AuthCréation compteInsertion en base avec statut 'pending_validation'
13RedisStockage tokenSauvegarde du token de validation avec TTL de 24h
14Service EmailEnvoi emailEmail de validation avec lien contenant le token
15ApplicationÉcran confirmationAffichage "Vérifiez votre email" avec possibilité de renvoyer
16ClientValidationClic sur le lien dans l'email reçu
17Service AuthVérification tokenRécupération et validation du token depuis Redis
18Service AuthActivation compteMise à jour du statut utilisateur vers 'active'
19Service AuthGénération JWTCréation des tokens d'accès (15min) et de rafraîchissement (30j)
20ApplicationStockage sécuriséSauvegarde des tokens dans Keychain (iOS) / Keystore (Android)
21ApplicationRedirectionNavigation vers l'onboarding de liaison de carte bancaire

7.2 Inscription Google OAuth2

Étapes du Processus Google OAuth2

# Composant Action Description
1ClientInitiationClic sur le bouton "Continuer avec Google"
2ApplicationOuverture OAuthLancement de la popup native Google Sign-In
3GoogleAuthentificationL'utilisateur s'authentifie avec son compte Google
4GoogleAutorisationDemande d'accès aux informations (email, profil)
5GoogleRetour codeRenvoi du code d'autorisation à l'application
6Service AuthÉchange tokensÉchange du code contre des tokens Google
7Service AuthDécodageExtraction des informations du id_token (email, nom, photo)
8Service AuthVérification compteRecherche d'un compte existant avec cet email ou google_id
9Service AuthCréation/LiaisonCréation du compte ou liaison avec compte existant
10ApplicationCGU (si nouveau)Affichage popup d'acceptation des CGU pour les nouveaux
11Service AuthGénération JWTCréation des tokens d'authentification REWAPP
12ApplicationFinalisationStockage tokens et redirection appropriée

7.3 Inscription Apple Sign In

Étapes du Processus Apple Sign In

# Composant Action Description
1ClientInitiationClic sur le bouton "Continuer avec Apple" (iOS uniquement)
2ApplicationOuverture popupLancement de Sign In with Apple native
3AppleAuthentificationAuthentification via Face ID, Touch ID ou mot de passe
4AppleOption emailProposition de masquer l'email (relay Apple)
5AppleRetour donnéesRenvoi identityToken + infos utilisateur (première connexion uniquement)
6Service AuthVérification tokenValidation du identityToken via les clés publiques Apple
7Service AuthRecherche compteVérification si un compte existe avec cet apple_id
8ApplicationComplétion profilSi prénom/nom non fournis, écran de saisie complémentaire
9Service AuthCréation compteCréation avec email (réel ou relay Apple)
10ApplicationCGUAcceptation obligatoire des CGU pour les nouveaux
11Service AuthGénération JWTCréation des tokens d'authentification REWAPP
12ApplicationFinalisationStockage tokens et redirection vers onboarding
8

CAS ALTERNATIFS ET EXCEPTIONS

8.1 Cas Alternatifs - Inscription Email

Diagramme de Séquence - Cas d'Erreurs Email/MDP

8.2 Cas Alternatifs - Inscription OAuth

Cas d'Erreurs OAuth

Cas Déclencheur Comportement Message Utilisateur
OAuth annulé L'utilisateur ferme la popup Google/Apple Retour à l'écran d'inscription Aucun message, retour silencieux
Compte Google suspendu Compte Google désactivé Échec authentification côté Google "Authentification Google échouée"
Email Google déjà lié Compte REWAPP existe avec cet email Connexion automatique (si social login) ou erreur "Un compte existe déjà avec cet email"
Token Google invalide Token expiré ou falsifié Rejet côté backend "Authentification échouée. Réessayez."
Apple email masqué Utilisateur choisit relay Apple Création avec email relay @privaterelay.appleid.com Fonctionnement normal
Apple infos manquantes Première connexion sans nom Écran complémentaire obligatoire "Complétez votre profil"
Réseau indisponible Perte connexion pendant OAuth Timeout et annulation "Vérifiez votre connexion internet"
9

RÈGLES DE VALIDATION

9.1 Validation des Champs

Règles de Validation

Champ Type Obligatoire Règles Regex / Format
Prénom Texte ✅ Oui 2-50 caractères, lettres et accents uniquement ^[a-zA-ZÀ-ÿs'-]{2,50}$
Nom Texte ✅ Oui 2-50 caractères, lettres et accents uniquement ^[a-zA-ZÀ-ÿs'-]{2,50}$
Email Email ✅ Oui Format email valide selon RFC 5322, max 254 caractères Validation RFC 5322
Mot de passe Password ✅ Oui 8+ caractères, 1 majuscule, 1 minuscule, 1 chiffre ^(?=.*[a-z])(?=.*[A-Z])(?=.*d).{8,}$
Confirmation MDP Password ✅ Oui Identique au mot de passe Égalité stricte
CGU Checkbox ✅ Oui Doit être coché true

9.2 Indicateur de Force du Mot de Passe

Niveaux de Force

Niveau Couleur Conditions Message
Faible 🔴 Rouge < 8 caractères OU manque un critère (maj/min/chiffre) "Mot de passe faible"
Moyen 🟠 Orange 8-12 caractères ET tous les critères de base respectés "Mot de passe moyen"
Fort 🟢 Vert 12+ caractères ET tous les critères + caractère spécial "Mot de passe fort"

9.3 Contraintes Techniques

  • Email : Unicité en base de données (index unique)
  • Mot de passe : Hashage bcrypt avec cost factor 12
  • Token validation : UUID v4, stockage Redis avec TTL 24h
  • Rate limiting : 5 requêtes/minute par IP pour l'inscription
  • Taille requête : Maximum 1 Mo
10

MESSAGES D'ERREUR

10.1 Messages d'Erreur Côté Client

Erreurs de Validation Client

Code Erreur Message Affiché Contexte
FIELD_REQUIRED"Ce champ est obligatoire"Champ vide à la soumission
INVALID_EMAIL_FORMAT"Format d'adresse email invalide"Email ne respectant pas le format RFC 5322
PASSWORD_TOO_SHORT"Le mot de passe doit contenir au moins 8 caractères"Mot de passe < 8 caractères
PASSWORD_NO_UPPERCASE"Ajoutez au moins une majuscule"Mot de passe sans majuscule
PASSWORD_NO_LOWERCASE"Ajoutez au moins une minuscule"Mot de passe sans minuscule
PASSWORD_NO_DIGIT"Ajoutez au moins un chiffre"Mot de passe sans chiffre
PASSWORD_MISMATCH"Les mots de passe ne correspondent pas"Confirmation différente du MDP
CGU_NOT_ACCEPTED"Vous devez accepter les Conditions Générales d'Utilisation"Checkbox CGU non cochée
NAME_TOO_SHORT"Ce champ doit contenir au moins 2 caractères"Prénom ou nom < 2 caractères
NAME_INVALID_CHARS"Ce champ ne peut contenir que des lettres"Caractères non autorisés

10.2 Messages d'Erreur Côté Serveur

Erreurs HTTP

HTTP Code Erreur Message Affiché Cause
409EMAIL_ALREADY_EXISTS"Cette adresse email est déjà utilisée"Email déjà enregistré en base
410TOKEN_EXPIRED"Le lien de validation a expiré. Demandez un nouvel email."Token de validation expiré (>24h)
410TOKEN_INVALID"Lien de validation invalide"Token non trouvé ou déjà utilisé
429TOO_MANY_REQUESTS"Trop de tentatives. Réessayez dans X minutes."Rate limiting déclenché
400INVALID_REQUEST"Requête invalide"Données malformées
401OAUTH_FAILED"Authentification échouée. Réessayez."Échec OAuth Google/Apple
500SERVER_ERROR"Une erreur est survenue. Veuillez réessayer."Erreur interne serveur
503SERVICE_UNAVAILABLE"Service temporairement indisponible"Maintenance ou surcharge
11

POST-CONDITIONS

11.1 État du Système Après Inscription Réussie

État des Composants

Composant État Détails
Base de DonnéesNouvel utilisateur crééStatut 'active', email_verified_at renseigné, cgu_accepted_at renseigné
RedisToken validation suppriméNettoyage automatique après validation
ApplicationTokens stockésAccess Token (15min) + Refresh Token (30j) dans Keychain/Keystore
SessionUtilisateur connectéNavigation vers onboarding liaison carte
EmailEmail de bienvenue envoyéConfirmation d'inscription envoyée

11.2 Données Utilisateur Créées

Structure des Données

Champ Source Valeur
idSystèmeUUID v4 généré
emailFormulaire/OAuthEmail fourni ou relay Apple
email_verified_atSystèmeTimestamp de validation
password_hashSystèmeHash bcrypt (null si OAuth)
first_nameFormulaire/OAuthPrénom fourni
last_nameFormulaire/OAuthNom fourni
google_idGoogle OAuthID unique Google (nullable)
apple_idApple Sign InID unique Apple (nullable)
cgu_accepted_atSystèmeTimestamp d'acceptation CGU
statusSystème'active'
created_atSystèmeTimestamp de création
loyalty_tierSystème'bronze' (défaut)
total_pointsSystème0 (défaut)
12

RÈGLES MÉTIER APPLICABLES

12.1 Règles Générales

RÈGLES IMPORTANTES
  • L'inscription est 100% GRATUITE pour tous les utilisateurs
  • L'utilisateur doit avoir 18 ans ou plus
  • L'acceptation des CGU est OBLIGATOIRE
  • Un seul compte par adresse email
  • La validation email est obligatoire pour l'inscription Email/MDP
  • Les inscriptions OAuth (Google/Apple) sont pré-validées

12.2 Sécurité

  • Mot de passe : Hashage bcrypt (cost factor 12)
  • Tokens JWT : Signés RS256, Access Token 15 min, Refresh Token 30 jours
  • Rate limiting : 5 requêtes/minute par IP pour éviter les abus
  • Token validation : Usage unique, validité 24h
  • Stockage sécurisé : Keychain (iOS) / Keystore (Android)

12.3 RGPD et Conformité

  • Consentement explicite via checkbox CGU
  • Données minimales collectées (prénom, nom, email)
  • Droit d'accès, de rectification et de suppression
  • Chiffrement des données en transit (TLS 1.3) et au repos (AES-256)
FIN DU DOCUMENT

Document rédigé conformément au Guide de Rédaction REWAPP v1.0
Source de vérité : Section 1 - Documents de Cadrage
Référence : 2.1 Spécifications App Mobile - Module d'Authentification