Si el inicio de sesión con One Tap satisface sus necesidades, considere usarlo en su lugar. One Tap tiene una experiencia de usuario actualizada y otras mejoras.

Flujo de integración de Android

Para integrar Smart Lock para contraseñas en su aplicación de Android, debe agregar llamadas a la API de credenciales al flujo de inicio e inicio de sesión de su aplicación. El siguiente diagrama muestra el flujo de una aplicación de Android típica que usa Smart Lock para contraseñas.

Si bien hay muchas formas de integrar con éxito Smart Lock para contraseñas, y los detalles de una integración dependen de la estructura y la experiencia del usuario de la aplicación, se recomienda el siguiente flujo para la mayoría de las aplicaciones. Las aplicaciones que utilizan este flujo tienen estas ventajas de experiencia de usuario:

  • Los usuarios existentes de su servicio que tienen una sola credencial guardada inician sesión inmediatamente y van directamente a la vista de inicio de sesión cuando abren la aplicación.
  • Los usuarios que tienen varias credenciales guardadas o que han deshabilitado el inicio de sesión automático deben responder solo a un cuadro de diálogo antes de ir a la vista de inicio de sesión de la aplicación.
  • Los usuarios que no tienen credenciales guardadas o que aún no se han registrado pueden elegir su nombre y correo electrónico con un solo toque y ser enviados de forma inteligente a la vista de inicio de sesión o de registro, con esta información precargada.
  • Cuando los usuarios cierran la sesión, la aplicación se asegura de que no vuelvan a iniciar sesión automáticamente.

Diagrama del flujo de inicio de sesión de Smart Lock

Recuperar credenciales

  1. Cuando se inicia la aplicación, si ningún usuario ya ha iniciado CredentialsClient.request() , llame a CredentialsClient.request() .
  2. Si la Task se realiza correctamente, obtenga las credenciales del usuario con getResult().getCredential() y utilícelas para getResult().getCredential() sesión.
  3. Si la Task falla y la excepción es una instancia de ResolvableApiException y getStatusCode() devuelve RESOLUTION_REQUIRED , se requiere la entrada del usuario para elegir una credencial. Llame a startResolutionForResult() para solicitar al usuario que seleccione una cuenta guardada, luego llame a getParcelableExtra(Credential.EXTRA_KEY) para obtener las credenciales del usuario y getParcelableExtra(Credential.EXTRA_KEY) para iniciar sesión.

Guardar credenciales

  1. Si la Task falla con una ApiException y getStatusCode() devuelve SIGN_IN_REQUIRED , el usuario no tiene credenciales guardadas y debe iniciar sesión o registrarse manualmente usando su inicio de sesión actual o el flujo de registro. Una vez que el usuario completa correctamente el inicio de sesión, puede brindarle la oportunidad de guardar sus credenciales para recuperarlas en el futuro (paso 5).

    Puede ayudar al usuario a iniciar sesión o registrarse más rápido y más fácilmente recuperando sugerencias de inicio de sesión, como la dirección de correo electrónico del usuario. El usuario puede seleccionar la pista y omitir escribir sus credenciales. Si su aplicación requiere que los usuarios inicien sesión, puede optar por recuperar sugerencias inmediatamente después de que falle la solicitud de credenciales inicial (de lo contrario, puede esperar hasta que el usuario inicie el proceso de inicio de sesión o registro).

    1. Llame a CredentialsClient.getHintPickerIntent() e inicie la intención de solicitar al usuario que seleccione una cuenta, luego llame a getParcelableExtra(Credential.EXTRA_KEY) para obtener la sugerencia de inicio de sesión.
    2. Si el ID de usuario de la sugerencia coincide con un usuario existente, rellene previamente el formulario de inicio de sesión y deje que el usuario introduzca la contraseña para iniciar sesión.
    3. Si el ID de usuario de la sugerencia no coincide con un usuario existente, rellene previamente el formulario de registro con el ID y el nombre del usuario y deje que el usuario cree una nueva cuenta.
  2. Después de que el usuario inicie sesión correctamente o cree una cuenta, guarde el ID de usuario y la contraseña con CredentialsClient.save() .

    Si el usuario setAccountType sesión con un proveedor de identidad federado como Google Sign-In, cree el objeto Credential con la dirección de correo electrónico del usuario como ID y especifique el proveedor de identidad con setAccountType .

desconectar

  1. Cuando el usuario cierra sesión, llame a CredentialsClient.disableAutoSignIn() para evitar que el usuario vuelva a iniciar sesión inmediatamente. La desactivación del inicio de sesión automático también permite a los usuarios cambiar fácilmente entre cuentas, por ejemplo, entre cuentas de trabajo y personales, o entre cuentas. en dispositivos compartidos, sin tener que volver a ingresar su información de inicio de sesión.

¿Está listo para integrar Smart Lock para contraseñas en su aplicación? Empiece .