Connexion de l'Utilisateur
Date de création : 24 novembre 2025
Dernière modification le : 24 novembre 2025
Dernière modification par : Vanessa LEROY
📊 Flux Complet
L'utilisateur peut choisir de se connecter Ă tout moment sur l'application et choisit soit une connexion par : - email/mot de passe - Google - Apple
À l'issue de son inscription, l'utilisateur a accès à une période d'essaie de 30 jours avec l'accès à toutes les fonctionnalités payantes. Si l'utilisateur n'effectue aucun paiement après la fin de la période d'essaie, alors il revient à un compte sans aucun privilège.
À chaque connexion, une vérification de son statut est effectuée.
En résumé :
Télécharge l'application → Accès gratuit → Inscription → Authentification → Création Profil → Rôle Trial (30j) → Connexion → Vérification statut → Rôle Trial (si période d'essai) → Accès complet → Rôle Expired (si non-paiement après période d'essai) → Accès gratuit
📋 Processus détaillé de l'inscription
1. Inscription via Firebase UI Auth
- L'utilisateur s'inscrit via Firebase UI Auth (email/mot de passe, Google, Apple)
- Le système détecte automatiquement la nouvelle connexion
Si l'utilisateur utilise la même adresse email avec deux méthodes de connexion différente, alors Firebase regroupe les données utilisateurs. Cela permet à l'application de fonctionner optimalement sans créer deux utilisateurs différents pour le client.
2. Création Automatique du Profil Utilisateur
Le système crée automatiquement un profil utilisateur dans la base de données lors de la première connexion avec : - Rôle défini : Trial - Date de fin d'essai : date actuelle + durée de la période d'essai - Langue par défaut : français - Champs profil : initialisés avec valeurs vides (à compléter par l'utilisateur)
3. Vérification Email (si applicable)
Pour les comptes email/mot de passe : - Vérifie si c'est un compte email/mot de passe - Envoie automatiquement un email de vérification - Continue même si l'envoi échoue (ne bloque pas l'inscription)
🎯 Constantes Importantes
| Constante | Valeur | Description |
|---|---|---|
| Durée d'essai | 30 jours | Période d'essai automatique |
| Rôle par défaut | Trial | Attribution automatique à l'inscription |
| Base de données | app_users | Stockage des profils utilisateurs |
🔄 Processus autres des Utilisateurs
Étapes automatiques lors de chaque connexion :
- Vérifie si le compte existe dans Firestore
- Met Ă jour
lastLoginDateavec timestamp actuel - Ajoute un enregistrement Ă l'historique des connexions
- Vérifie le statut de l'essai automatiquement
- Vérification de la dernière date de mise à jour du mot de passe si l'inscription utilise un mot de passe (processus à venir)
Étapes automatiques lors de chaque deconnexion :
- Met Ă jour
lastLogoutDateavec timestamp actuel - Ajoute un enregistrement Ă l'historique des deconnexions
Étapes automatiques durant une connexion :
Toutes les 5 minutes, l'application vérifie : 1. Le statut de l'essai 2. Le statut de l'abonnement
Interface utilisateurs
Écrans de connexion
Un bouton de connexion renvoyant vers l'écran de connexion / d'inscription est présent : - Sur l'écran d'accueil - Sur l'écran qui s'affiche lorsque le client tente d'accéder aux détails d'un aliment autre que l'Abricot
L'écran de connexion et d'inscription est le même et permet à l'Utilisateur de choisir sa méthode de connexion. Sur cet écran, l'utilisateur peut signaler un problème surtout s'il rencontre des difficultés à se connecter.
Écrans de deconnexion
Un bouton de déconnexion est présent sur l'écran Profil
Écrans administrateurs
Écran Gestion des utilisateurs permet de :
- connaitre l'ensemble des utilisateurs de l'application avec :
- leur adresse email
- leur nom
- leur rĂ´le
- leur date d'inscription
- modifier le rôle utilisateur manuellement (attention : les automatisations restent maître)
Écran Statistiques utilisateurs permet de visualiser les statistiques de connexion des utilisateurs et ainsi connaitre :
- les utilisateurs qui n'utilisent plus l'application depuis plusieurs semaines
Document technique
Fonctionnalités particulières
Mise à jour du rôle de l'Utilisateur réalisées à deux niveaux :
- Toute les 5 minutes : Au niveau de l'application dans _startPeriodicStatusCheck()
- Toutes les 30 minutes : Au niveau de Firebase en connexion direct avec Stripe (via une fonction)