Fiche 10.01 — Session, access token, refresh token et AuthState
Objectif
Comprendre comment une app sait si un utilisateur est connecté, comment fonctionnent les tokens, et comment gérer un état d’authentification global.
1. Session utilisateur
Une session représente l’état actuel de connexion de l’utilisateur.
Dans une app SwiftUI, cet état est souvent stocké dans un AuthState ou SessionManager partagé.
2. Access token
L’access token sert à authentifier les requêtes API.
Il est souvent de courte durée.
Exemple :
3. Refresh token
Le refresh token sert à obtenir un nouvel access token quand celui-ci expire.
Le refresh token est plus sensible et doit être stocké dans le Keychain.
4. AuthState simple
5. AppRootView
L’app décide automatiquement quel écran afficher selon l’état de session.
6. Différence Firebase Auth / Auth REST
Avec Firebase Auth, le SDK gère beaucoup de choses : session, user courant, token interne.
Avec une API REST propriétaire, tu dois gérer toi-même :
- requête login ;
- stockage tokens ;
- refresh token ;
- header Authorization ;
- logout ;
- expiration de session.
Résumé
- Une session indique si l’utilisateur est connecté.
- L’access token authentifie les requêtes API.
- Le refresh token renouvelle l’access token.
- Les tokens doivent être stockés dans le Keychain.
- Un
AuthStateglobal permet de rediriger automatiquement vers login ou app principale.