Sessions de courte durée
Ce processus montre comment le SDK auth0-spa-js doit être intégré pour prendre en charge la gestion de session multisite. Dans ce scénario, on suppose que le délai d’inactivité du du tenant est réglé à 300 secondes, et que l’expiration du de chaque application SPA est réglée à 150 secondes. Cela correspond à une session « de courte durée ».Fonctionnalités du SDK
Flux PKCE
Pour toutes les méthodes permettant d’obtenir un ID Token ou un , le SDK prend en charge toute la complexité de la clé de preuve pour l’échange de code. Aucune étape ni configuration supplémentaire n’est nécessaire pour que cela fonctionne.Liens directs
Pour améliorer l’expérience utilisateur, le SDK inclut un paramètreappState pour la méthode loginWithRedirect(). Les renseignements sur l’application en cours sont inclus dans la requête envoyée au serveur Auth et sont renvoyés après une authentification réussie, ce qui assure une continuation fluide du parcours utilisateur.
Dans le Quickstart, le composant PrivateRoute définit le paramètre state targetUrl, et la fonction onRedirectCallback de index.js récupère cette valeur pour rediriger l’utilisateur lorsque l’authentification est terminée.
Stockage des jetons
Afin de stocker les jetons renvoyés de la manière la plus sécuritaire possible, tous les jetons sont placés dans un cache local. Les ID Token et jetons d’accès sont stockés par paires, et les valeurs de et du scope servent à récupérer les jetons au besoin. De plus, les jetons mis en cache sont supprimés dès que l’ID Token ou le jeton d’accès expire, de sorte que si un jeton se trouve dans le cache, on peut supposer qu’il est encore valide.Appeler des API
La méthodegetTokenSilently() utilise d’abord le cache de jetons et, si aucun jeton n’y est stocké, lance un iframe invisible pour en récupérer un nouveau. À cette fin, toutes les requêtes aux API peuvent utiliser cette méthode pour créer l’en-tête du bearer token, sans logique supplémentaire pour gérer les jetons expirés.
Dans le Quickstart, la vue ExternalService effectue une requête vers l’API express à l’aide de cette fonctionnalité.
Avertissez les utilisateurs pour qu’ils poursuivent leur session
Lorsqu’un utilisateur n’a effectué aucune action susceptible de mettre à jour la session Auth0, Auth0 recommande d’afficher un avertissement lui demandant de choisir explicitement de poursuivre sa session. Cette approche permet à la session de devenir inactive si l’utilisateur n’est plus présent, tout en offrant un moyen de déclencher l’actualisation silencieuse du jeton afin qu’il puisse poursuivre sa session sans avoir à saisir de nouveau ses informations d’identification. Pour en savoir plus sur les délais d’inactivité et les fenêtres modales d’expiration, consultez les URL de logout propres à l’application.Exemple de flux de travail
- Authentification initiale
- Maintien de la session Auth0
- SSO transparent
- Demander à l’utilisateur de prolonger la session
- L’utilisateur se déconnecte explicitement de l’application
- L’utilisateur revient à l’application initiale après s’être déconnecté
Authentification initiale
- Un nouvel onglet s’ouvre
- Envoi d’une requête de connexion
- L’utilisateur saisit ses identifiants
- Le cookie SSO (avec date d’expiration) est défini
- Échange de jetons effectué

Maintenir la session Auth0
- L’utilisateur demande des données à une ressource protégée
-
getTokenSilently()appelé - Ressource récupérée
- L’utilisateur met à jour des données dans la ressource protégée
-
getTokenSilently()appelé- Iframe ouverte
- Échange de jeton effectué
- La ressource est mise à jour

SSO transparent
- L’utilisateur accède à une route privée
- Vérifier avec
isAuthenticated() - Si faux,
loginWithRedirect()

Demander à l’utilisateur de prolonger la session
- Au bout de 240 secondes, demander à l’utilisateur de garder la session active au moyen d’une fenêtre modale affichée pendant 60 secondes
- S’il choisit de garder la session active,
getTokenSilently()

L’utilisateur se déconnecte explicitement de l’application
- L’utilisateur choisit de se déconnecter
-
logout()est appelé- Vider le cache de jetons
- Envoyer une requête à
/oidc/logout - Effacer le cookie SSO et supprimer les données de session
- Rediriger l’utilisateur vers la page de déconnexion

L’utilisateur revient à l’application initiale après s’être déconnecté
- L’utilisateur demande des données à une ressource protégée
getTokenSilently()est appelé- Comportement variable selon l’application
