Tienda de bloques

Muchos usuarios aún administran sus propias credenciales al configurar un nuevo dispositivo Android. Este proceso manual puede convertirse en un desafío y, a menudo, resulta en una mala experiencia de usuario. La API Bloque tienda, una biblioteca impulsado por los servicios de Google Play , ve a solucionar esto proporcionando una manera para que la aplicación guarde las credenciales de usuario sin la complejidad o la seguridad riesgo asociado con el ahorro de contraseñas de usuario.

La API de Block Store permite que su aplicación almacene credenciales de usuario que luego puede recuperar para volver a autenticar a los usuarios en un nuevo dispositivo. Esto ayuda a brindar una experiencia más fluida para el usuario, ya que no necesita ver una pantalla de inicio de sesión al iniciar su aplicación por primera vez en el nuevo dispositivo.

Los beneficios de usar Block Store incluyen lo siguiente:

  • Solución de almacenamiento de credenciales cifradas para desarrolladores. Las credenciales se cifran de un extremo a otro cuando es posible.
  • Guarde tokens en lugar de nombres de usuario y contraseñas.
  • Elimina la fricción de los flujos de inicio de sesión.
  • Ahorre a los usuarios la carga de administrar contraseñas complejas.
  • Google verifica la identidad del usuario.

Antes de que empieces

Configura tu aplicación

  1. En su nivel de proyecto build.gradle archivo, incluir repositorio de Maven de Google , tanto en su buildscript y allprojects secciones:

    buildscript {
        repositories {
            google()
        }
    }
    
    allprojects {
        repositories {
            google()
        }
    }
    
  2. Añadir las dependencias de la API Bloque tienda a archivo Gradle nivel de aplicaciones del módulo, que es generalmente app/build.gradle :

    dependencies {
      implementation 'com.google.android.gms:play-services-auth-blockstore:16.0.2'
    }
    

Cómo funciona

Cuando un usuario inicia sesión en su aplicación, puede guardar el token de autenticación que genera para ese usuario en Block Store. Esto se hace llamando setBytes() en una instancia de StoreBytesData.Builder para almacenar las credenciales del usuario al dispositivo fuente. Después de guardar el token con Block Store, el token se cifra y se almacena localmente en el dispositivo.

El siguiente fragmento de código muestra cómo guardar el token de autenticación:

val client = Blockstore.getClient(this)
val data = StoreBytesData.Builder()
        .setBytes(/* BYTE_ARRAY */)
        .build()
client.storeBytes(data)
        .addOnSuccessListener{ result ->
            Log.d(TAG, "Stored: ${result.getBytesStored()}")
        }

Más adelante, cuando un usuario pasa por un flujo de restauración de dispositivo a dispositivo en un dispositivo nuevo, los servicios de Google Play primero verifican al usuario y luego recuperan sus datos de Block Store. El usuario ya ha aceptado restaurar los datos de su aplicación como parte del flujo de restauración, por lo que no se requieren consentimientos adicionales. Cuando el usuario abre la aplicación, puede solicitar su ficha de Block Store llamando retrieveBytes() . El token recuperado se puede usar para mantener al usuario conectado en el nuevo dispositivo.

val client = Blockstore.getClient(this)
client.retrieveBytes()
        .addOnSuccessListener { result ->
            Log.d(TAG, "Retrieved: ${String(result)}")
}