Pour intégrer Smart Lock pour les mots de passe à votre application Android, vous devez ajouter des appels à l'API Credentials au flux de démarrage et de connexion de votre application. Le schéma suivant illustre le flux d'une application Android classique qui utilise Smart Lock pour les mots de passe.
Bien qu'il existe de nombreuses façons d'intégrer Smart Lock pour les mots de passe, et que les spécificités d'une intégration dépendent de la structure et de l'expérience utilisateur de l'application, le flux suivant est recommandé pour la plupart des applications. Les applications qui utilisent cette procédure présentent les avantages suivants en termes d'expérience utilisateur:
- Les utilisateurs existants de votre service qui n'ont enregistré qu'un seul identifiant sont immédiatement connectés et accèdent directement à la vue des utilisateurs connectés lorsqu'ils ouvrent l'application.
- Les utilisateurs qui ont enregistré plusieurs identifiants ou qui ont désactivé la connexion automatique ne doivent répondre qu'à une seule boîte de dialogue avant d'accéder à la vue des utilisateurs connectés de l'application.
- Les utilisateurs qui n'ont pas enregistré d'identifiants ou qui ne se sont pas encore inscrits peuvent choisir leur nom et leur adresse e-mail d'un simple geste. Ils sont alors automatiquement redirigés vers la vue de connexion ou d'inscription, avec ces informations préremplies.
- Lorsque les utilisateurs se déconnectent, l'application s'assure qu'ils ne sont pas automatiquement reconnectés.
Récupérer des identifiants
- Au démarrage de l'application, si aucun utilisateur n'est déjà connecté, appelez
CredentialsClient.request()
. - Si
Task
réussit, récupérez les identifiants de l'utilisateur avecgetResult().getCredential()
et utilisez-les pour vous connecter. - Si la méthode
Task
échoue et que l'exception est une instance deResolvableApiException
et quegetStatusCode()
renvoieRESOLUTION_REQUIRED
, l'entrée utilisateur est requise pour sélectionner un identifiant. AppelezstartResolutionForResult()
pour inviter l'utilisateur à sélectionner un compte enregistré, puis appelezgetParcelableExtra(Credential.EXTRA_KEY)
pour obtenir les identifiants de l'utilisateur et les utiliser pour se connecter.
Enregistrer les identifiants
Si
Task
échoue avec uneApiException
et quegetStatusCode()
renvoieSIGN_IN_REQUIRED
, l'utilisateur n'a aucun identifiant enregistré et doit se connecter ou s'inscrire manuellement à l'aide de votre parcours de connexion ou d'inscription actuel. Une fois que l'utilisateur a réussi à se connecter, vous pouvez lui permettre d'enregistrer ses identifiants afin de les récupérer ultérieurement (étape 5).Vous pouvez aider l'utilisateur à se connecter ou à s'inscrire plus rapidement et plus facilement en récupérant les indices de connexion, tels que son adresse e-mail. L'utilisateur peut sélectionner l'indice et ignorer la saisie de ses identifiants. Si votre application nécessite que les utilisateurs se connectent, vous pouvez choisir de récupérer des suggestions immédiatement après l'échec de la demande d'identifiants initiale. Sinon, vous pouvez attendre que l'utilisateur lance le processus de connexion ou d'inscription.
- Appelez
CredentialsClient.getHintPickerIntent()
et démarrez l'intent pour inviter l'utilisateur à sélectionner un compte, puis appelezgetParcelableExtra(Credential.EXTRA_KEY)
pour obtenir l'indice de connexion. - Si l'ID utilisateur de l'indice correspond à un utilisateur existant, préremplissez-le dans le formulaire de connexion et laissez l'utilisateur saisir le mot de passe pour se connecter.
- Si l'ID utilisateur de l'indice ne correspond à aucun utilisateur existant, remplissez le formulaire d'inscription avec l'ID et le nom de l'utilisateur, puis laissez ce dernier créer un compte.
- Appelez
-
Une fois que l'utilisateur s'est connecté ou a créé un compte, enregistrez l'ID utilisateur et le mot de passe avec
CredentialsClient.save()
.Si l'utilisateur s'est connecté avec un fournisseur d'identité fédéré tel que Google Sign-In, créez l'objet
Credential
en utilisant l'adresse e-mail de l'utilisateur comme ID et spécifiez le fournisseur d'identité avecsetAccountType
.
Se déconnecter
- Lorsque l'utilisateur se déconnecte, appelez
CredentialsClient.disableAutoSignIn()
pour l'empêcher d'être immédiatement reconnecté. La désactivation de la connexion automatique permet également aux utilisateurs de passer facilement d'un compte à un autre (par exemple, de leur compte professionnel à leur compte personnel, ou d'un compte à un autre sur des appareils partagés) sans avoir à saisir à nouveau leurs informations de connexion.
Prêt à intégrer Smart Lock pour les mots de passe à votre application ? Inscrivez-vous.