Installation
- À partir du CDN :
<script src="https://cdn.auth0.com/js/auth0-spa-js/2.0/auth0-spa-js.production.js"></script>. Pour en savoir plus, consultez la FAQ. - Avec npm :
npm install @auth0/auth0-spa-js - Avec yarn :
yarn add @auth0/auth0-spa-js
Premiers pas
Créer le client
Auth0Client. Créez l’instance Auth0Client avant d’afficher ou d’initialiser votre application. Vous pouvez le faire soit avec la méthode async/await, soit avec des promesses. Vous ne devez créer qu’une seule instance du client.
L’utilisation de createAuth0Client effectue automatiquement quelques opérations :
- Elle crée une instance d’
Auth0Client. - Elle appelle
getTokenSilentlypour actualiser la session de l’utilisateur. - Elle ignore toutes les erreurs de
getTokenSilently, sauflogin_required.
Utilisez async/await
Utiliser les promesses
Auth0Client. Cela peut être utile si vous souhaitez :
- Contourner l’appel à
getTokenSilentlyà l’initialisation. - Gérer les erreurs de façon personnalisée.
- Initialiser le SDK de manière synchrone.
Se connecter et obtenir les renseignements sur l’utilisateur
<button id="login">Click to Login</button>
Écoutez les événements de clic du bouton que vous avez créé. Lorsque l’événement se produit, utilisez la méthode de connexion souhaitée pour authentifier l’utilisateur (loginWithRedirect() dans cet exemple). Une fois l’utilisateur authentifié, vous pouvez récupérer son profil à l’aide de la méthode getUser().
Utiliser async/await
Utiliser les promesses
Appeler une API
getTokenSilently est utilisée pour récupérer le jeton d’accès :
<button id="callApi">Call an API</button>
Utiliser async/await
Utiliser les promesses
Déconnexion
<button id="logout">Logout</button>
Modifier les options de stockage
cacheLocation sur localstorage lors de l’initialisation du SDK. Cela peut aider à atténuer certains effets des technologies de protection de la vie privée des navigateurs qui empêchent l’accès au Auth0 en conservant les jetons d’accès plus longtemps.
Utiliser des jetons d’actualisation avec rotation
useRefreshTokens à true lors de l’initialisation :
devront aussi être configurés pour votre tenant avant de pouvoir être utilisés dans votre SPA.
Une fois configurés, le SDK demandera la portée offline_access pendant l’étape d’autorisation. De plus, getTokenSilently appellera alors directement le point de terminaison /oauth/token pour échanger des jetons d’actualisation contre des jetons d’accès.
Le SDK respectera la configuration de stockage au moment d’enregistrer les jetons d’actualisation. Si le SDK a été configuré avec le mécanisme de stockage en mémoire par défaut, les jetons d’actualisation seront perdus au rechargement de la page.
Utilisation
Connexion par redirection
/authorize d’Auth0 pour lancer le flux Universal Login :
Se connecter avec une fenêtre contextuelle
error.popup.close :
popup personnalisée dans l’objet options :
Connexion avec callback de redirection
handleRedirectCallback doit être appelé pour terminer le flux de connexion :
Obtenir un jeton d’accès sans interaction
prompt=none, ou d’un jeton d’actualisation avec rotation. Les jetons d’actualisation sont utilisés lorsque useRefreshTokens est défini sur true lors de la configuration du SDK.
L’obtention d’un jeton d’accès sans interaction, sans utiliser de jetons d’actualisation, ne fonctionnera pas dans les navigateurs qui bloquent les cookies tiers, comme Safari et Brave. Pour en savoir plus sur cette solution de contournement au moyen d’un domaine personnalisé, consultez Résoudre les problèmes de renouvellement de jetons lors de l’utilisation de Safari.
getTokenSilently() exige que l’option Allow Skipping User Consent soit activée dans les paramètres de votre API dans le Dashboard. De plus, le consentement de l’utilisateur ne peut pas être ignoré sur ‘localhost’.
Obtenir un jeton d’accès au moyen d’une fenêtre contextuelle
getTokenSilently, cette méthode de récupération d’un jeton d’accès fonctionne dans les navigateurs où les cookies tiers sont bloqués par défaut :
Obtenir un jeton d’accès pour une audience différente
getTokenSilently pour obtenir un jeton d’accès avec une et une portée différentes de celles demandées lors de l’authentification de l’utilisateur.
Cela fonctionne uniquement si vous n’utilisez pas de jeton d’actualisation (
useRefreshTokens: false), puisqu’un jeton d’actualisation est lié à l’audience et à la portée précises demandées lors de l’authentification de l’utilisateur.Récupérer l’utilisateur
getUser :
Obtenir les claims de l’ID Token
getIdTokenClaims :
Déconnexion (par défaut)
logout :
Déconnexion sans ID client
logout et en incluant clientId: null :