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 l’application
Auth0Client. Créez l’instance Auth0Client avant d’effectuer le rendu ou d’initialiser votre application. Vous pouvez le faire à l’aide de la méthode async/await ou de promesses. Vous ne devez créer qu’une seule instance du client.
L’utilisation de createAuth0Client fait automatiquement quelques opérations :
- Crée une instance de
Auth0Client. - Appelle
getTokenSilentlypour actualiser la session de l’utilisateur. - Supprime toutes les erreurs de
getTokenSilently, sauflogin_required.
Utilisez async/await
Utiliser des promesses
Auth0Client. Cela peut être utile si vous voulez :
- Éviter l’appel à
getTokenSilentlylors de l’initialisation. - Gérer les erreurs de façon personnalisée.
- Initialiser le SDK de manière synchrone.
Connectez-vous et obtenez les informations de l’utilisateur
<button id="login">Click to Login</button>
Écoutez les événements de clic sur le 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 le profil utilisateur à l’aide de la méthode getUser().
Utilisez async/await
Utiliser des 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 des 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 du navigateur qui empêchent l’accès au d’Auth0, en conservant les jetons d’accès plus longtemps.
Utiliser des jetons d’actualisation avec rotation
useRefreshTokens sur true lors de l’initialisation :
devront aussi être configurés pour votre locataire avant de pouvoir être utilisés dans votre SPA.
Une fois configurés, le SDK demandera le scope offline_access à 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 lorsque la page sera rechargée.
Utilisation
Connexion par redirection
/authorize d’Auth0 pour lancer le flux Universal Login :
Connexion avec une fenêtre contextuelle
error.popup.close :
popup personnalisée dans l’objet options :
Connexion avec callback après redirection
handleRedirectCallback doit être appelé pour terminer le flux de connexion :
Obtenir un Jeton d’accès sans interaction
iframe masqué et de prompt=none, ou en utilisant un Jeton d’actualisation rotatif. Les Jetons d’actualisation sont utilisés lorsque useRefreshTokens est défini sur true lors de la configuration du SDK.
L’obtention silencieuse d’un Jeton d’accès sans utiliser de Jetons d’actualisation ne fonctionne pas dans les navigateurs qui bloquent les témoins tiers, comme Safari et Brave. Pour en savoir plus sur la solution de contournement avec un Domaine personnalisé, consultez Troubleshoot Renew Tokens When Using Safari.
getTokenSilently() exige que l’option Allow Skipping User Consent soit activée dans vos paramètres d’API dans le Auth0 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 pour obtenir un jeton d’accès fonctionne dans les navigateurs où les témoins 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 un scope différents de ceux demandés au moment de l’authentification de l’utilisateur.
Cela fonctionne uniquement si vous n’utilisez pas de jetons d’actualisation (
useRefreshTokens: false), car un jeton d’actualisation est lié à l’audience et au scope précis demandés au moment 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 :