
Compartir:
Helena es redactora técnica en Vonage y trabaja en la documentación de nuestras API de comunicaciones. Reside en Londres y a menudo se la puede encontrar jugando, comprando demasiados discos de vinilo o viendo un espectáculo en el teatro.
Buenas prácticas para implantar la autenticación silenciosa
Tiempo de lectura: 5 minutos
Verify V2 acaba de ser disponibilidad generalhemos querido profundizar un poco más en nuestra función de autenticación silenciosa. En este artículo, le explicaremos cómo funciona, junto con algunas herramientas útiles y consejos para su implementación.
¿Cómo funciona la autenticación silenciosa?
La autenticación silenciosa es un canal de la Verify API que permite completar la autenticación sin un código 2FA. Una vez que el usuario ha introducido sus credenciales de inicio de sesión, comprueba su identidad cotejando la información de su SIM con los registros de su operador para asegurarse de que su número de teléfono está activo y es auténtico. Una vez verificada una solicitud, puedes autenticar continuamente al usuario hasta que la solicitud caduque o el usuario la cancele.
En pocas palabras, es un método de autenticación que utiliza el módulo de identidad del abonado (SIM) de un teléfono móvil para probar la identidad de un usuario sin intervención del usuario..
Puede obtener más información sobre el funcionamiento de la autenticación silenciosa en nuestra entrada anterior o en la documentación para desarrolladoresel resto de este artículo te explicará algunos consejos útiles y características que puedes tener en cuenta a la hora de implementar la autenticación silenciosa.
Forzar una conexión de datos móviles
La autenticación silenciosa no sólo depende de que el usuario tenga un teléfono móvil: también necesita una conexión de red celular. Si la solicitud se envía a través de Wi-Fi, se producirá un error. Para ayudar con esto, hemos proporcionado iOS y Android Bibliotecas que pueden ayudarle a hacer una solicitud HTTP a través de celular, incluso cuando en WiFi:
Android
La biblioteca Android Library está disponible en GitHubdonde encontrarás información sobre permisos, compatibilidad y ejemplos de cómo integrar la autenticación silenciosa en tus aplicaciones:
import com.vonage.clientlibrary.VGCellularRequestClient
import com.vonage.clientlibrary.VGCellularRequestParameters
VGCellularRequestClient.initializeSdk(this.applicationContext)
val params = VGCellularRequestClientParameters(
url = "http://www.vonage.com",
headers = mapOf("x-my-header" to "My Value") ,
queryParameters = mapOf("query-param" to "value"),
maxRedirectCount = 10
)
val response = VGCellularRequestClient.getInstance().startCellularGetRequest(params, false)
if (response.optString("error") != "") {
// error
} else {
val status = response.optInt("http_status")
if (status == 200) {
// 200 OK
} else {
// error
}
} iOS
La biblioteca iOS Library también está disponible en GitHubdonde encontrará información sobre la instalación, la compatibilidad y ejemplos de uso:
import VonageClientLibrary
let client = VGCellularRequestClient()
let params = VGCellularRequestParameters(url: "http://www.vonage.com",
headers: ["x-my-header": "My Value"],
queryParameters: ["query-param" : "value"]
maxRedirectCount: 10)
let response = try await client.startCellularRequest(params: params, debug: true)
if (response["error"]) != nil {
// Handle error
} else {
let status = resp["http_status"] as! Int
if (status == 200) {
// Handle response
} else {
// Handle error
}
} Sandbox de autenticación silenciosa
Probar la autenticación silenciosa puede ser difícil. Para probar una verificación correcta, el código debe ejecutarse desde una aplicación que se ejecute en un teléfono a través de una red móvil, lo que puede ser complicado de configurar. Para ayudar con esto, Vonage ha proporcionado un sandbox que omite la verificación con el proveedor. En su lugar, utilizarás los datos devueltos en tus devoluciones de llamada para completar la verificación tú mismo, eliminando la necesidad de una conexión de red móvil.
Para ello, añada "sandbox": "true" a su flujo de trabajo:
Esto evitará el transportista y enviará su solicitud a la caja de arena.
La guía completa sobre el uso de la caja de arena de autenticación silenciosa se puede encontrar aquí.
Tanto si utiliza el sandbox como si no, obtendrá una respuesta que contendrá tanto su request_idy el archivo check_url:
{
"request_id": "31eaf23d-b2db-4c42-9d1d-e847e75ab330",
"check_url": "https://api.nexmo.com/v2/verify/31eaf23d-b2db-4c42-9d1d-e847e75ab330/silent-auth/redirect"
}Para continuar, tendrá que enviar una GET solicitud a la base de datos check_url. Esto dará lugar a varias HTTP302 respuestas que tu cliente tendrá que seguir, la cantidad dependerá del enrutamiento de operador que se requiera en función de la ubicación del dispositivo.
HTTP/1.1 302 Found
Location: https://eu.api.silentauth.com/phone_check/v0.2/checks/31eaf23d-b2db-4c42-9d1d-e847e75ab330/redirectHTTP/1.1 302 Found
Location: https://sandbox.redirect.m-auth.com/callback/sandbox?id=31eaf23d-b2db-4c42-9d1d-e847e75ab330Una vez que haya seguido las redirecciones, obtendrá un HTTP200 que nos lleva al paso final. Recibirá un code en la respuesta, que debe enviarse al endpoint check-code endpoint:
{
"request_id": "31eaf23d-b2db-4c42-9d1d-e847e75ab330",
"code": "si9sfG"
}Este código funciona exactamente igual que tomar un código entregado a través de otro canal. Envía el código al punto final de la API:
POST /https://api.nexmo.com/v2/verify/31eaf23d-b2db-4c42-9d1d-e847e75ab330 HTTP/1.1
Content-Type: application/json
{
"code": "si9sfG"
}y tendrá su respuesta final. Si tiene éxito:
HTTP/1.1 200 OK
Content-Type: application/json
{
"request_id": "31eaf23d-b2db-4c42-9d1d-e847e75ab330",
"status": "completed"
}Y si la verificación falla:
HTTP/1.1 409 CONFLICT
Content-Type: application/json
{
"title": "Network error",
"detail": "The Silent Auth request could not be completed due to formatting or the carrier is not supported."
}La guía completa sobre el uso de la caja de arena de autenticación silenciosa se puede encontrar aquí.
Retorno a otros canales
Hay varias situaciones en las que la autenticación silenciosa puede no funcionar, por ejemplo, si el usuario es:
En un dispositivo de sobremesa
Fuera de la cobertura de su red
En una conexión Wi-Fi en lugar de su red celular
En estos casos, tiene la opción de recurrir a otros canales. Puede hacerlo configurando el flujo de trabajo en su solicitud; en este ejemplo, primero se intentará la autenticación silenciosa. Si falla, se enviará un SMS:
Más información sobre flujos de trabajo y los canales disponibles aquí.
Conclusión
Esperamos que este resumen de consejos y sugerencias le haya resultado útil y le ayude en sus futuros proyectos con la autenticación silenciosa. Puede crear una Account para empezar a utilizar Verify ahora, siga nuestra Twitter Developer Account para estar al día y consultar nuestra documentos para desarrolladores para obtener más información.