Autenticación con Huawei Account Kit en Aplicaciones Android

Clase 11 de 31Curso de Desarrollo de Aplicaciones con Huawei

Resumen

¿Cómo integrar la autenticación de Huawei en tu aplicación?

Hoy exploramos cómo implementar la autenticación de Huawei Account Kit en una aplicación. A través de esta guía, aprenderás a usar un botón de diseño específico para iniciar sesión con tu Huawei ID, utilizando el código ya construido en la pantalla de login. Es un enfoque esencial para quienes desean integrar el ecosistema Huawei en sus aplicaciones Android.

¿Cómo comenzamos con la autenticación del Huawei ID?

Primero, es crucial asegurarse de que el botón de Huawei en el diseño de login tenga un identificador correcto. En nuestro caso, utilizamos BTN login. Este botón es esencial para nuestro proceso de autenticación, por lo que nos enfocamos en llamarlo dentro de nuestra clase AutoActivity y adicionarle un listener asociado al evento setOnClickListener.

Aquí, se introduce un comentario para luego crear una función dedicada a gestionar el proceso de autenticación. Esta función, llamada loginHuaweiIDAuth, incluye los parámetros necesarios para el servicio de autenticación.

fun loginHuaweiIDAuth() {
    val authParams = HuaweiIDAuthParamsHelper(HuaweiIDAuthParams.DEFAULT_AUTH_REQUEST_PARAM)
        .setEmail()
        .setIdToken()
        .setAccessToken()
        .setProfile()
        .createParams()
    // Continúa la implementación
}

¿Cómo configuramos los parámetros de autenticación?

Al establecer esta función, primero se crea una variable authParams con los parámetros de autenticación necesarios. Estos parámetros permiten acceder a diversos datos del usuario:

  • Email: para comunicaciones y verificaciones.
  • Access Token: validación y acceso restringido.
  • Profile: Este objeto puede incluir configuración como nombre de usuario, avatar, etc.
  • ID Token y uID: ambos son cruciales para las notificaciones push y otros servicios.

La elección del tipo DEFAULT_AUTH_REQUEST_PARAM se debe a que no nos estamos autenticando con un juego, sino con una aplicación regular.

¿Cómo realizamos la autenticación con el servicio Huawei?

Una vez definidos los parámetros, creamos una instancia con el authManager que se conecta con el servicio de autenticación. El proceso sigue con el método startActivityForResult, pasando nuestro servicio y un request code. Este código numérico define el proceso de login en curso y puede ser cualquier valor, aunque en el ejemplo se usa el 1000.

val authService = HuaweiIdAuthManager.getService(activity, authParams)
startActivityForResult(authService.signInIntent, 1000)

¿Cómo manejamos los resultados del login?

El manejo del resultado, mediante onActivityResult, nos indica si la autenticación fue exitosa o fallida. Al verificar el requestCode, confirmamos si proviene del servicio de login. Dependiendo del resultCode, realizamos las siguientes acciones:

  • Login cancelado: Puede ser debido a la falta de conectividad o interrupción del proceso.
  • Login exitoso: Un resultCode exitoso indica que el login se completó satisfactoriamente.
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (requestCode == 1000) {
        if (resultCode == Activity.RESULT_OK) {
            // Procesar resultado exitoso
            val task = HuaweiIdAuthManager.parseAuthResultFromIntent(data)
            if (task.isSuccessful) {
                // Login exitoso
            } else {
                // Manejo de fallas
            }
        } else {
            // Login cancelado
        }
    }
}

A través de esta estructura, puedes gestionar y anticipar adecuadamente los diferentes escenarios posibles durante el proceso de autenticación. Integrar la autenticación de Huawei en tu aplicación no solo mejora la experiencia de usuario, sino que también abre nuevas posibilidades dentro del ecosistema Huawei. ¡Continúa explorando y mejorando tus habilidades en el desarrollo de aplicaciones móviles!