Sessions de courte durée
Ce flux de travail montre comment la trousse SDK auth0-spa-js doit être implémenté pour supporter la gestion de sessions multisites. Dans ce scénario, on suppose que le délai d’inactivité de l’authentification unique du locataire est défini sur 300 secondes et que l’expiration du jeton d’ID de chaque application à page unique est définie sur 150 secondes. Ceci est considéré comme une session « de courte durée ».Caractéristiques de la trousse SDK
Flux PKCE
Pour toutes les méthodes de récupération d’un jeton d’ID ou d’un jeton d’accès, la trousse SDK gère toutes les subtilités de la clé de preuve du flux de production Proof Key for Code Exchange. Aucun effort ou configuration supplémentaire n’est nécessaire pour que cela fonctionne.Lien profond
Pour améliorer l’expérience utilisateur, la trousse SDK inclut un paramètreappState
pour la méthode loginWithRedirect()
. Les détails sur l’application actuelle sont regroupés dans le cadre de la requête adressée au serveur d’authentification qui sera renvoyée une fois l’authentification réussie. Permettre une continuation fluide du parcours utilisateur.
Dans le Démarrage rapide, le composant PrivateRoute
définit un paramètre d’état de targetUrl
et la fonction onRedirectCallback
de index.js
extrait cette valeur pour rediriger l’utilisateur une fois l’authentification terminée.
Stockage des jetons
Pour conserver les jetons renvoyés stockés de la manière la plus sûre possible, ils sont tous placés dans un cache local. L’identifiant et les jetons d’accès sont stockés sous forme de paires, les valeurs d’ et de permission étant utilisées pour récupérer les jetons selon les besoins. De plus, les jetons de cache sont supprimés une fois que le jeton d’ID ou d’accès expire, de sorte que si un jeton se trouve dans le cache, il peut être considéré comme étant toujours valide.Appeler des API
La méthodegetTokenSilently()
est utilisée pour utiliser le cache de jetons en premier, et s’il n’en existe pas, lancera un iFrame invisible pour en récupérer un nouveau. À cette fin, toutes les requêtes adressées aux API peuvent utiliser cette méthode pour construire l’en-tête de jeton du porteur sans avoir besoin d’une logique supplémentaire pour gérer les jetons expirés.
Dans le Démarrage rapide, l’affichage ExternalService
fait une requête à l’API express en utilisant cette caractéristique.
Avertir les utilisateurs de continuer leurs sessions
Dans le cas où un utilisateur n’a effectué aucune action susceptible d’entraîner la mise à jour de la session Auth0, Auth0 vous recommande d’envoyer un avertissement à l’utilisateur pour qu’il choisisse de poursuivre explicitement sa session. L’intention de cette approche permet à la session de devenir inactive si l’utilisateur n’est plus présent, mais fournit par ailleurs un moyen de déclencher l’actualisation silencieuse du jeton afin que l’utilisateur puisse poursuivre sa session sans avoir besoin d’être à nouveau invité à fournir ses informations d’identification. Pour en savoir plus sur les minuteries d’inactivité et les modalités de délai d’expiration, lisez URL de déconnexion spécifiques à l’application.Exemple de flux de travail
- Authentification initiale
- Maintien de la session Auth0
- SSO fluide
- Invite l’utilisateur à prolonger la session
- L’utilisateur se déconnecte explicitement de l’application
- L’utilisateur est renvoyé à l’application initiale après s’être déconnecté
Authentification initiale
- Un nouvel onglet est ouvert
- Demandes de connexion
- L’utilisateur saisit les informations d’identification
- Le témoin SSO (avec expiration) est défini
- Échange de jeton réalisé

Maintien de la session Auth0
- Demandes de données de l’utilisateur à partir d’une ressource protégée
-
getTokenSilently()
appelé - Ressource récupérée
- L’utilisateur met à jour les données de la ressource protégée
-
getTokenSilently()
appelé- iFrame ouvert
- Échange de jeton réalisé
- La ressource est mise à jour

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

Inviter l’utilisateur à prolonger la session
- À 240 secondes, invite l’utilisateur à maintenir la session active avec une fenêtre qui dure 60 secondes
- Si l’utilisateur choisit de maintenir la session,
getTokenSilently()

L’utilisateur se déconnecte explicitement de l’application
- L’utilisateur choisit de se déconnecter
-
logout()
appelé- Le cache de jetons est vidé
- Appeler
/oidc/logout
- Supprimer le témoin SSO et les données de session
- Rediriger l’utilisateur vers la page de déconnexion

L’utilisateur est renvoyé à l’application initiale après s’être déconnecté
- Demandes de données de l’utilisateur à partir d’une ressource protégée
getTokenSilently()
appelé- Comportement dépendant de l’application
