Manejo de option multitwofa caso HSBC Empresas Widget-less

Existen casos de ejecuciones de la conexión con HSBC empresas que en su estatus 410 - Waiting for MFA Value regresan una respuesta como esta:

{
   "code":410,
   "address":"https://sync.paybook.com/v1/jobs/624648c162add1530f420706/twofa",
   "twofa":[
      {
         "label":"\u00bfC\u00f3mo desea autenticarse en su dispositivo m\u00f3vil?",
         "name":"token",
         "options":[
            {
               "label":"Enviar una notificaci\u00f3n a mi dispositivo m\u00f3vil",
               "value":"mobile_approve"
            },
            {
               "label":"Generar un c\u00f3digo de seguridad en mi dispositivo m\u00f3vil",
               "value":"totp"
            }
         ],
         "type":"textOptions"
      }
   ]
}

Este caso puede considerarse como un option multitwofa, ya que se exponen dos opciones para que el usuario decida como desea realizar la autenticación de dos pasos (TWOFA).

El Widget de syncfy maneja este escenario, sin embargo, para las implementaciones que no hacen uso del Widget se recomienda seguir el siguiente flujo:

  1. Desplegar al usuario las opciones y una vez que el usuario selecciona una opción realizar la petición correspondiente.
  2. Mandar un POST a la url del campo address (e.g: https://sync.paybook.com/v1/jobs/624648c162add1530f420706/twofa) y llevaría un cuerpo dependiendo del option que selecciona.
    En este caso le propiedad "twofa.token" del json puede variar, pero el nombre del twofa se obtiene del valor "name" e.g:
{
    "twofa": {
        "token": "mobile_approve"
    }
}
  1. Si el usuario selecciona la option "mobile_approve" ahí el usuario le daría click en su app de HSBC y finalizaría el proceso de autenticación.

  2. Si el usuario selecciona la option "totp", tras mandar el request se volverá a obtener un status 410 donde debe introducir el token generado, siguiendo el flujo común para un caso de token twofa. e.g:
    {"twofa": { "token" : "abcdef" }}