Node.js

Utiliza el Vonage Client SDK

Es hora de completar la Autenticación Silenciosa correctamente haciendo que la aplicación Android llame a la función check_url utilizando la red móvil y enviando el code al backend a través de /check-code.

En lugar de utilizar OkHttp llamar check_urlEn este caso, utilizaremos el Client SDK de Vonage porque la autenticación silenciosa depende del contexto de la red móvil (enrutamiento del operador, identidad de la SIM/red), y la solicitud puede ir a través de Wi-Fi, lo que rompe el propósito de la autenticación silenciosa.

El Vonage Client SDK existe para resolver exactamente esto:

  • Puede forzar la solicitud a través de datos celulares (o utilizar la ruta de red correcta)
  • Gestiona los redireccionamientos y los detalles de la solicitud de la forma que Silent Auth espera
  • Te da una respuesta estructurada para que puedas extraer la code limpiamente

En esta sección vamos a construir lo siguiente:

  1. Si check_url existe, llámalo desde el teléfono usando el Vonage Client SDK.
  2. Extracto code de la respuesta.
  3. Enviar { request_id, code } al backend a través de /check-code.
  4. Si falla la Autenticación Silenciosa, vuelva a SMS:
    • llame a /next (mejor esfuerzo, para no esperar ~20 segundos).
    • mostrar la interfaz de usuario del código SMS.

Añade la dependencia de Vonage Client SDK

Añade la dependencia al proyecto actual. Abra su build.gradle.kts y añade:

Después de añadirlo, sincroniza Gradle.

Inicializar el SDK

Inicialice el SDK una vez en MainActivity.onCreate():

Esto es seguro hacerlo al inicio y evita olvidarlo más tarde.

Implementar checkSilentAuth(checkUrl) Uso del SDK

Añada esta función a su MainActivity.kt.. Realiza una petición GET celular a check_url, sigue las redirecciones y extrae code de la respuesta JSON.

El método devuelve un code que su backend puede validar con POST /check-code.

Actualizar el flujo "Iniciar verificación" para intentar la autenticación silenciosa

Ahora sustituye la lógica de "forzar siempre el SMS fallback" de la sección anterior por:

  • Pruebe la autenticación silenciosa si check_url está presente
  • Si falla, activa /next (best-effort) y mostrar SMS UI

Conceptualmente:

  1. POST /verification(request_id, check_url?)

  2. Si check_url existe:

    • code = checkSilentAuth(check_url)
    • POST /check-code con (request_id, code)
  3. Si eso falla:

    • llame a POST /next (optimización UX opcional)
    • mostrar interfaz SMS

Esta es la parte esencial que debe utilizar en el botón Redactar onClick (dentro de una coroutine):

Verify and Silent Auth Tutorial