offline_access incluse, elle renvoie un jeton d’actualisation qui peut être utilisé pour demander un nouveau jeton d’utilisateur, sans obliger l’utilisateur à s’authentifier à nouveau.
Gestionnaire des identifiants
Auth0.Android fournit une classe utilitaire permettant de simplifier le processus de stockage et de renouvellement des identifiants. Vous pouvez accéder aux propriétésaccessToken ou idToken à partir de l’instance Identifiants. Il s’agit de la méthode privilégiée pour gérer les identifiants des utilisateurs.
Les gestionnaires d’identifiants sont inclus dans la trousse SDK Auth0.Android. Si cela ne fait pas encore partie de vos dépendances, suivez les directives dans Auth0.Android.
Il existe deux classes que vous pouvez utiliser pour gérer les identifiants :
CredentialsManagerstocke les données en texte clair.SecureCredentialsManagerchiffre les données avant de les stocker, en utilisant une combinaison d’algorithmes RSA et AES avec Android KeyStore.
Utilisation de la classe CredentialsManager
Configurer le gestionnaire d’identifiants
Créer une nouvelle instance en fournissant uneAuthenticationAPIClient et une implémentation Storage.
État actuel de l’authentification
Les identifiants stockés sont considérés comme valides s’ils n’ont pas expiré ou s’ils peuvent être actualisés. Vérifier si un utilisateur s’est déjà connecté.Récupération des identifiants
Étant donné que les identifiants peuvent devoir être actualisés par rapport aux serveurs Auth0, cette méthode est asynchrone. Fournissez une implémentation de rappel à l’endroit où vous voulez recevoir les identifiants. Les identifiants renvoyés par cette méthode en cas de succès sont toujours valides.accessToken a expiré, le gestionnaire utilise automatiquement le refreshToken et renouvelle les identifiants pour vous. Les nouveaux identifiants seront stockés pour un accès ultérieur.
Enregistrement des nouveaux identifiants
Vous pouvez enregistrer les identifiants obtenus lors de l’authentification dans le gestionnaire.Utilisation de la classe SecureCredentialsManager
Configurer SecureCredentialsManager
Créer une nouvelle instance en fournissant unContext Android valide, une AuthenticationAPIClient et une implémentation de Storage.
Pré-authentification de l’utilisateur
Cette classe fournit une fonctionnalité optionnelle pour une authentification supplémentaire à l’aide de l’écran de verrouillage configuré de l’appareil.Si la sécurité du verrouillage de l’écran est réglée sur autre chose que PIN (code NIP), Pattern (modèle), Password (mot de passe) ou Fingerprint (empreinte digitale), cette fonctionnalité n’est pas disponible.
Activity valide, un code de demande et deux chaînes facultatives à utiliser comme titre et description de l’écran de verrouillage.
Définissez également une constante de code de demande afin que le code de demande provenant du résultat de l’activité puisse être mis en correspondance.
onActivityResult de l’activité fournie en premier paramètre. Si la fonctionnalité n’a pas été activée, l’authentification de l’écran de verrouillage sera ignorée.
Après avoir vérifié que le code de demande reçu correspond à celui utilisé dans l’étape de configuration, rediriger les paramètres reçus vers le gestionnaire pour terminer l’authentification. Les identifiants seront envoyés à la fonction de rappel d’origine.
La méthode
onActivityResult a été retirée en 2021 et remplacée par les nouvelles API Résultat d’activité.. Cependant, la trousse SDK d’Auth0.Android n’est pas compatible avec ces contrats. Vous pouvez continuer à utiliser les méthodes obsolètes en toute sécurité.Traitement des exceptions d’utilisation
Si un événement inattendu se produit lors de l’enregistrement ou de la récupération des identifiants, une exceptionCredentialsManagerException est levée. Voici quelques-uns des scénarios d’échec auxquels vous pouvez vous attendre :
- Les identifiants à stocker ne sont pas valides (par ex., certains des champs suivants ne sont pas définis :
access_token,id_tokenouexpires_at). - Les identifiants stockés ont expiré mais il n’y a pas de jeton d’actualisation prévu pour les renouveler automatiquement.
- Les paramètres de sécurité de l’écran de verrouillage de l’appareil ont été modifiés (par ex. le NIP de sécurité a été modifié). Même si
hasCredentialsrenvoie un résultat positif, les clés de chiffrement seront considérées comme non valides. Jusqu’à ce quesaveCredentialssoit appelé à nouveau, il ne sera pas possible de décrypter un contenu existant précédemment, car les clés utilisées précédemment ne sont pas les mêmes que les nouvelles. - L’appareil n’est pas compatible avec certains algorithmes de cryptographie requis par la classe
SecureCredentialsManager. Cette situation est considérée comme un événement catastrophique et c’est la seule exception qui vous empêchera d’utiliser cette implémentation. Ce scénario se produit lorsque le fabricant d’équipement d’origine a modifié la mémoire morte Android de l’appareil, en supprimant certains des algorithmes officiellement inclus dans chaque distribution Android. Néanmoins, vous pouvez vérifier si c’est le cas dans l’instance d’exception elle-même en appelant la méthodeisDeviceIncompatible. Ce faisant, vous pouvez décider de l’implémentation de remplacement pour le stockage des identifiants, par exemple en utilisant la classeCredentialsManagerhabituelle.