Authentification
JWT Bearer tokens, refresh automatique, multi-tenancy via header et OIDC headless.
Flow d'authentification
- POST /auth/login → reçoit accessToken + refreshToken
- Chaque requête : Authorization: Bearer {accessToken} + X-Tenant-ID: {slug}
- Token expiré (401) → POST /auth/refresh → nouveaux tokens
- Refresh expiré → redirection vers /auth/login
Durée de vie des tokens
| Token | Durée | Stockage recommandé | Rotation |
|---|---|---|---|
| Access Token | 1 heure | Mémoire / variable | À chaque refresh |
| Refresh Token | 7 jours | HttpOnly cookie ou SecureStore | À chaque utilisation |
Rafraîchir un token
Rotation automatique : chaque refresh renvoie un nouveau pair de tokens. L'ancien refresh token est immédiatement invalidé.
Payload JWT
Exemple décodé
Champs disponibles
| Champ | Type | Description |
|---|---|---|
| sub | string | ID utilisateur (usr_...) |
| string | Email de l'utilisateur | |
| tenantId | string | ID interne du tenant (ten_...) |
| tenantSlug | string | Slug du tenant (URL-friendly) |
| iat | number | Issued At — timestamp Unix d'émission |
| exp | number | Expiration — timestamp Unix (iat + 3600) |
Multi-tenancy
Chaque organisation QualiForma est un tenant isolé. Le header X-Tenant-ID est obligatoire sur toutes les requêtes, y compris /auth/login.
X-Tenant-ID: votre-tenant-slugLe slug tenant est la partie URL-friendly du nom de votre organisation. Retrouvez-le dans Administration → Paramètres → Informations du tenant.
Rôles et permissions
| Rôle | Accès |
|---|---|
| ADMIN | Accès complet au tenant — gestion utilisateurs, formations, config |
| CREATOR | Créer et gérer ses propres formations, inscrire des apprenants |
| LEARNER | Consulter le catalogue, suivre ses formations, télécharger ses documents |
| TRAINER | Animer des sessions, gérer les présences |
| FUNDER | Consulter les inscriptions et documents de son périmètre |
Vérification du rôle
Les endpoints vérifient toujours les permissions côté serveur. La vérification côté client est optionnelle pour l'UX.
OIDC Headless
Pour les organisations avec un SSO existant (Azure AD, Okta, etc.), QualiForma supporte l'authentification OIDC headless par tenant. Le flux consiste à échanger un token OIDC contre des tokens QualiForma via POST /auth/oidc/exchange. Contactez le support pour la configuration.