Conditions préalables
Configurer la rotation des jetons d’actualisation pour activer l’accès hors ligne et demandez la permission de l’accès hors ligne dans la trousse SDK du client.Activer useRefreshTokens
En conformité avec les spécifications OAuth2, lorsqu’un navigateur demande un jeton d’actualisation à partir du point de terminaison /token, Auth0 ne renverra un jeton d’actualisation que si la rotation des jetons d’actualisation est activée pour ce client. Utilisez l’optionuseRefreshTokens
sur createAuth0Client
dont la valeur par défaut est false
. Si cette option est réglée sur false
, lorsque getTokenSilently()
est invoquée et qu’un nouveau jeton d’accès est requis, la trousse SDK tente d’acquérir un nouveau jeton d’accès à l’aide d’un iframe dissimulé et d’un prompt=none
.
Si vous réglez cette option sur true
, la permission offline_access
est automatiquement demandée lors de l’utilisation de loginWithRedirect(), loginWithPopup()
et getTokenSilently()
. Lorsque getTokenSilently()
est invoqué et que le jeton d’accès a expiré, la trousse SDK essaie de renouveler les jetons d’accès et d’ID en appelant le point de terminaison /token
à l’aide du type d’autorisation refresh_token
ainsi que du jeton d’actualisation du cache.
La réauthentification silencieuse est réalisée en envoyant un paramètre prompt=none
lors de la demande d’authentification et en utilisant un iframe dissimulé, à condition qu’il y ait une session utilisateur active sur le serveur d’autorisation. La trousse SDK utilise la méthode iframe si vous avez défini useRefreshTokens
sur true
mais qu’aucun jeton d’actualisation n’est disponible dans le cache. Cela permet aux utilisateurs de migrer silencieusement vers l’utilisation de jetons d’actualisation sans les obliger à se reconnecter.
Si l’échange échoue parce que useRefreshTokens
est true
, mais qu’il n’y a pas de jeton d’actualisation dans le cache, on revient à la méthode iframe (qui peut également échouer si les témoins tiers sont bloqués).