Flujo de integración de Android (original) (raw)

Ir al contenido principal

Flujo de integración de Android

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

A fin de integrar Smart Lock para contraseñas en tu app para Android, debes agregar llamadas a la API de credenciales al flujo de inicio y acceso de tu app. En el siguiente diagrama, se muestra el flujo de una app para Android típica que usa Smart Lock para contraseñas.

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

Diagrama del flujo de acceso de Smart Lock

Recupera credenciales

  1. Cuando se inicie la app, si aún no accedió ningún usuario, llama a CredentialsClient.request().
  2. Si Task funciona correctamente, obtén las credenciales del usuario con getResult().getCredential() y úsalas para acceder.
  3. Si Task falla y la excepción es una instancia de ResolvableApiException, y getStatusCode() muestra RESOLUTION_REQUIRED, se requiere la entrada del usuario para elegir una credencial. Llama a startResolutionForResult() para solicitarle al usuario que seleccione una cuenta guardada y, luego, llama a getParcelableExtra(Credential.EXTRA_KEY) para obtener las credenciales del usuario y usarlas para acceder.

Guardar credenciales

  1. Si Task falla con una ApiException, y getStatusCode() muestra SIGN_IN_REQUIRED, el usuario no tiene credenciales guardadas y debe acceder o registrarse de forma manual mediante tu flujo de acceso o registro actual. Una vez que el usuario completa el acceso con éxito, puedes darle la oportunidad de guardar sus credenciales para su futura recuperación (paso 5).
    Puedes ayudar al usuario a acceder o registrarse de forma más rápida y fácil si recuperas sugerencias de acceso, como la dirección de correo electrónico del usuario. El usuario puede seleccionar la sugerencia y omitir el paso de escribir sus credenciales. Si tu app requiere que los usuarios accedan, puedes optar por recuperar las sugerencias de inmediato después de que falle la solicitud de credenciales inicial (de lo contrario, puedes esperar hasta que el usuario inicie el flujo de acceso o registro).
    1. Llama a CredentialsClient.getHintPickerIntent() y, luego, inicia el intent para solicitarle al usuario que seleccione una cuenta. Luego, llama a getParcelableExtra(Credential.EXTRA_KEY) para obtener la sugerencia de acceso.
    2. Si el ID de usuario de la sugerencia coincide con un usuario existente, completa previamente el formulario de acceso y permite que el usuario ingrese la contraseña para acceder.
    3. Si el ID de usuario de la sugerencia no coincide con un usuario existente, completa previamente el formulario de registro con el ID y el nombre del usuario y permite que el usuario cree una cuenta nueva.
  2. Después de que el usuario acceda o cree una cuenta correctamente, guarda su ID y contraseña con CredentialsClient.save().
    Si el usuario accedió con un proveedor de identidad federada, como el Acceso con Google, crea el objeto Credential con la dirección de correo electrónico del usuario como ID y especifica el proveedor de identidad con setAccountType.

Salir

  1. Cuando el usuario salga de su cuenta, llama a CredentialsClient.disableAutoSignIn() para evitar que vuelva a acceder de inmediato. Inhabilitar el acceso automático también permite que los usuarios cambien 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 acceso.

¿Todo listo para integrar Smart Lock para contraseñas en tu app?Comienza.

Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.

Última actualización: 2023-12-10 (UTC)