Verificación de identidad de clientes

Documentación para integrar la autenticación de clientes finales

Introducción

Algunos flujos conversacionales requieren la verificación de identidad de las personas que interactúan con las empresas en los canales digitales. El presente documento explica como llevar a cabo tal verificación.

Requerimientos

Se requiere permitirle a los clientes finales iniciar sesión en una aplicación web y que tal autenticación le permita operar contra el bot de forma segura e identificada.

Implementación

Dado cierto flujo conversacional, el bot puede solicitarle al usuario que ingrese a un enlace para realizar la autenticación. Por ejemplo; https://example.com/sign-in/?mappingHash=MAPPING_HASH_VALUE. El parámetro mappingHash es un hash que identifica de forma única la sesión de autenticación.

La página https://example.com/sign-in/?mappingHash=MAPPING_HASH_VALUE deberá:

  • Guardar el valor contenido en el parámetro mappingHash.

  • Pedirle al usuario que ingrese su usuario y contraseña.

  • Una vez autenticado el usuario, se deben ejecutar dos consultas a https://backend.optiwe.com.

  • Una vez terminadas las consultas, redirigir al usuario a https://api.whatsapp.com/send/?phone=TELEFONO_DE_LA_EMPRESA

A continuación se detallan las consultas a realizar una vez autenticado el usuario. La documentación de la primera consulta es:

  • URL: https://backend.optiwe.com/hash-mappings/MAPPING_HASH_VALUE/

  • Verb: GET

  • Cuerpo de respuesta:

{
    "accessToken": str
    "userUuid": str
    "userType": "WHATSAPP_END_USER",
    "wanumber": str
}

Alguno de los datos devueltos por la consulta serán utilizados en la siguiente petición HTTP.

Notar que una vez ejecutada la segunda consulta, el hash quedará obsoleto. Una vez invalidado el hash, si se volviera a consultar se obtendría la siguiente respuesta:

  • Status code: 404 Not found

  • Cuerpo de respuesta:

{
  "error": {
      "key": "HASH_MAPPING_NOT_FOUND",
      "message": "Hash mapping 7542394d84161d10f90c8042da90a76c4f106c58 not found",
      "details": {}
  }
}

La segunda petición HTTP debe realizarse estrictamente una vez que el usuario se haya autenticado exitosamente con su usuario y contraseña. La documentación es:

  • URL: https://backend.optiwe.com/chat/history/

  • Verb: POST

  • Request headers:

    • Content-Type: application/json;charset=UTF-8

    • Authorization: Bearer TOKEN_OBTENIDO_EN_PETICION_1

  • Request body:

{
    "userUuid": str,
    "messageFrom": "WHATSAPP_END_USER",
    "messagePayload": {
      "type": "SIGN_IN",
      "signInPayload": {
        "auth": true,
      }
    }
}

Veamos cómo llenar cada uno de los campos:

  • userUuid: Tomarlo de la petición número 1

  • messageFrom: Tomarlo de la petición número 1

  • messagePayload.type: Siempre debe enviarse con el valor SIGN_IN

  • messagePayload.signInPayload: Siempre debe enviarse con el valor {"auth": true}

Una vez ejecutada la segunda petición, hacer una redirección a https://api.whatsapp.com/send/?phone=wanumber, donde wanumber se debe tomar de la petición número 1.

Última actualización