If One Tap sign-in meets your needs, consider using it instead. One Tap has an updated user experience and other improvements.

Flux d'intégration Android

Pour intégrer Smart Lock pour les mots de passe à votre application Android, vous devez ajouter des appels à l'API Credentials dans le flux de démarrage et de connexion de l'application. Le schéma suivant illustre un flux d'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 ce flux présentent les avantages suivants en termes d'expérience utilisateur:

  • Les utilisateurs existants de votre service qui ont un identifiant unique sont immédiatement connectés. Ils accèdent directement à la page de connexion lorsqu'ils ouvrent l'application.
  • Les utilisateurs disposant de plusieurs identifiants enregistrés ou qui ont désactivé la connexion automatique ne doivent répondre qu'à une seule boîte de dialogue avant d'accéder à la page de connexion de l'application.
  • Les utilisateurs qui n'ont pas encore d'identifiants enregistrés ou qui ne se sont pas encore inscrits peuvent sélectionner leur nom et leur adresse e-mail d'un simple geste, et les rediriger vers la vue de connexion ou d'inscription. Ces informations sont préremplies.
  • Lorsque les utilisateurs se déconnectent, l'application garantit qu'ils ne sont pas automatiquement reconnectés.

Schéma de la connexion à Smart Lock

Récupérer les identifiants

  1. Au démarrage de l'application, si aucun utilisateur n'est déjà connecté, appelez CredentialsClient.request().
  2. Si la Task est réussie, obtenez les identifiants de l'utilisateur avec getResult().getCredential() et utilisez-les pour vous connecter.
  3. Si Task échoue et que l'exception est une instance de ResolvableApiException et que getStatusCode() renvoie RESOLUTION_REQUIRED, une entrée utilisateur est nécessaire pour choisir un identifiant. Appelez startResolutionForResult() pour inviter l'utilisateur à sélectionner un compte enregistré, puis appelez getParcelableExtra(Credential.EXTRA_KEY) pour obtenir les identifiants de l'utilisateur et s'en servir pour se connecter.

Enregistrer les identifiants

  1. Si Task échoue avec une erreur ApiException et que getStatusCode() renvoie SIGN_IN_REQUIRED, l'utilisateur ne dispose pas d'identifiants enregistrés, et doit se connecter ou s'inscrire manuellement en utilisant votre flux de connexion ou d'inscription actuel. Une fois que l'utilisateur a réussi à se connecter, vous pouvez lui permettre d'enregistrer ses identifiants pour une récupération ultérieure (étape 5).

    Vous pouvez aider l'utilisateur à se connecter ou à s'inscrire plus rapidement et plus facilement en récupérant des conseils de connexion, tels que l'adresse e-mail de l'utilisateur. 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 les indices immédiatement après l'échec de la requête initiale d'identifiants (sinon, vous pouvez attendre que l'utilisateur lance le processus de connexion ou d'inscription).

    1. Appelez CredentialsClient.getHintPickerIntent() et démarrez l'intent pour inviter l'utilisateur à sélectionner un compte, puis appelez getParcelableExtra(Credential.EXTRA_KEY) pour obtenir l'indice de connexion.
    2. Si l'ID d'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.
    3. Si l'ID d'utilisateur de l'indice ne correspond pas à un utilisateur existant, remplissez le formulaire d'inscription avec l'ID et le nom de l'utilisateur, puis laissez l'utilisateur créer un compte.
  2. Une fois que l'utilisateur s'est connecté ou crée 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'ID d'adresse e-mail de l'utilisateur et spécifiez le fournisseur d'identité avec setAccountType.

Se déconnecter

  1. Lorsque l'utilisateur se déconnecte, appelez CredentialsClient.disableAutoSignIn() pour empêcher l'utilisateur de se reconnecter immédiatement. La désactivation de la connexion automatique permet également aux utilisateurs de passer facilement d'un compte à un autre (par exemple, entre des comptes professionnels et personnels, ou entre des comptes sur des appareils partagés) sans avoir à saisir à nouveau leurs informations de connexion.

Prêt à intégrer Smart Lock pour les mots de passe dans votre application ? Inscrivez-vous.