Ă la fin de ce chapitre, vous serez capables de :
Dans une application mobile moderne, lâauthentification permet de reconnaĂźtre un utilisateur et de lui offrir une expĂ©rience personnalisĂ©e.
Sans authentification, toutes les fonctionnalitĂ©s doivent ĂȘtre accessibles Ă nâimporte qui, sans distinction â ce qui est rarement souhaitĂ©.
Pour :
Afficher des données personnelles
â messages, notes, favoris, historique
Protéger certaines fonctionnalités
â commandes, paiement, configuration
Synchroniser les données entre plusieurs appareils (cloud)
AmĂ©liorer lâexpĂ©rience utilisateur
â retrouver profil, thĂšme, prĂ©fĂ©rences
đ Sur mobile, un dĂ©fi supplĂ©mentaire :
lâutilisateur sâattend Ă rester connectĂ©, mĂȘme si lâapp est fermĂ©e plusieurs jours.
Ces notions sont souvent confondues :
Authentification
= vĂ©rifier lâidentitĂ© de lâutilisateur
âĂtes-vous bien Thomas ?â
Autorisation
= vĂ©rifier les droits dâaccĂšs
âThomas peut-il modifier ce document ?â
La gestion des utilisateurs englobe :
đĄ Exemple concret :
Une application de notes affiche uniquement les notes du compte connecté :
impossible dâaccĂ©der Ă celles dâun autre utilisateur.
Les applications mobiles supportent plusieurs mĂ©thodes dâauthentification.
Chaque méthode a ses usages, ses avantages et son niveau de sécurité.
La méthode la plus courante.
Fonctionnement :
â Avantages : simple, trĂšs rĂ©pandu
â InconvĂ©nients : nĂ©cessite une bonne gestion des mots de passe (hash, politique de sĂ©curitĂ©âŠ)
Méthode moderne, utilisée par Slack, Notion, etc.
Fonctionnement :
â Avantages : pas de mot de passe Ă retenir, expĂ©rience fluide
â InconvĂ©nients : dĂ©pend entiĂšrement de lâemail, moins adaptĂ© Ă certains contextes âbusinessâ
Connexion via :
â Avantages :
- connexion ultra-rapide
- sécurité forte gérée par le fournisseur
â InconvĂ©nients :
- dépendance à un acteur externe
- parfois rejeté dans les environnements sensibles (écoles, entreprises)
âčïž Cas particulier iOS
Apple oblige parfois Ă proposer âSign in with Appleâ si dâautres logins sociaux sont inclus.
Utilisée pour déverrouiller un compte déjà connecté.
Ce nâest pas une authentification cloud, mais un verrou local.
â Avantages : trĂšs rapide, fluide pour lâutilisateur
â InconvĂ©nients : doit ĂȘtre couplĂ© Ă un compte dĂ©jĂ connectĂ© (et Ă une auth serveur classique)
La majoritĂ© des apps mobiles utilisent aujourdâhui des tokens JWT (JSON Web Token), reçus aprĂšs la connexion.
Authorization: Bearer <token>
âčïž Cette approche est au cĆur de Supabase Auth, Firebase Auth, Auth0, etc.
Une application mobile doit pouvoir mĂ©moriser la session dâun utilisateur mĂȘme lorsque lâapp est fermĂ©e.
Ce stockage doit ĂȘtre :
| Environnement | Solution | Sécurité |
|---|---|---|
| Ionic / Capacitor |
SecureStorage ou Preferences
|
đ ChiffrĂ© (SecureStorage) |
| Flutter | flutter_secure_storage |
đ ChiffrĂ© |
| Android natif | Keystore | đ TrĂšs sĂ©curisĂ© |
| iOS natif | Keychain | đ TrĂšs sĂ©curisĂ© |
đŹ Recommandation :
Toujours préférer un stockage sécurisé pour les tokens (access + refresh).
đĄ Exemple concret :
Supabase gĂšre automatiquement la persistance de session,
mais lâapp doit stocker les tokens pour pouvoir fonctionner hors ligne (au moins en lecture).
La plupart des apps modernes ne recodent pas leur propre auth.
Elles utilisent des services spécialisés (BaaS ou Identity Providers).
đ TrĂšs bon choix pĂ©dagogique et pro pour projets modernes.
đ Parfait pour un premier projet mobile.
đ Choix privilĂ©giĂ© dans les grandes entreprises.
| Solution | Simplicité | Mode offline | Coût | Idéal pour |
|---|---|---|---|---|
| Supabase | ââââ | ââââ | đ°đ° | App moderne avec base SQL |
| Firebase | âââââ | ââ | đ° | Premiers projets, apps simples |
| Auth0 | âââ | â | đ°đ°đ° | Entreprises, SSO, projets pro |
Sur mobile, lâexpĂ©rience dĂ©pend fortement de la qualitĂ© de la connexion.
Les coupures sont normales :
Une bonne app doit :
Contraintes :
đĄ Exemple concret :
Une app de notes doit rester utilisable offline, y compris pour consulter ou créer des notes, tant que la session locale est considérée comme valide.
Exemple de stratĂ©gie dâauth robuste pour une app mobile moderne :
đŠ 1. VĂ©rification de session au dĂ©marrage
Au lancement de lâapp :
đ§ 2. RafraĂźchissement automatique du token
Les tokens JWT expirent (ex. aprĂšs 1 heure).
Un refresh token permet de redemander un access token sans ressaisir le mot de passe.
Flux typique :
401 Unauthorized đ© 3. Stockage sĂ©curisĂ© du token
Les tokens doivent ĂȘtre stockĂ©s via :
SecureStorage flutter_secure_storage
đ Ne jamais stocker un token dans
localStoragecÎté web :
risque dâaccĂšs via JavaScript (XSS).
đ§ 4. ContinuitĂ© hors ligne
Si lâutilisateur est hors ligne :
đ„ 5. DĂ©connexion âgracieuseâ
Si un token expire et que le refresh échoue (ex. mot de passe changé ailleurs) :
âVotre session a expirĂ©, veuillez vous reconnecter.â
đ Ă retenir
Une application mobile doit maintenir une session :
- stable
- sécurisée
- résistante aux interruptions réseau
Les BaaS modernes (Supabase, Firebase, etc.)
simplifient énormément cette logique.
Objectif : comprendre les avantages / limites des différentes méthodes.
âĄïž Comparez mot de passe, OAuth et Magic Link.
âĄïž Classez-les selon :
- sécurité
- rapidité
- expérience utilisateur
- facilitĂ© dâintĂ©gration
đŹ Discussion : faut-il obliger les logins sociaux ?
Trois scénarios :
Preferences SecureStorage âĄïž Classez ces solutions du moins sĂ©curisĂ© au plus sĂ©curisĂ© et justifiez.
âĄïž Expliquez pourquoi certaines solutions ne conviennent pas pour des tokens sensibles.
Réalisez un schéma complet du flux :
Authorization: Bearer <token> đŹ Cet exercice prĂ©pare directement la section 2.6 (Supabase / Firebase).
Supabase Auth
https://supabase.com/docs/guides/auth
Firebase Authentication
https://firebase.google.com/docs/auth
Auth0 â Identity Platform
https://auth0.com/docs
OpenID & OAuth 2.0
https://oauth.net/
JWT (JSON Web Tokens)
https://jwt.io
OWASP Mobile Application Security
https://owasp.org/www-project-mobile-security/