El API Legacy se debe utilizar para implementar una arquitectura de microfrontend, donde cada aplicación frontend se integra con el API para autorizar el acceso a las funcionalidades que se migran. Esta estrategia facilita el desarrollo y mantenimiento de las aplicaciones frontend, ya que cada una puede ser desarrollada y actualizada de forma independiente.
El flujo para autorizar los accesos desde aplicaciones legacy es:
Las aplicaciones legacy consumiran la url del microfrontend y enviarán un parámetro llamado legacyToken de tipo string.
Ejemplo consumo: http://10.1.140.21:8092/?legacyToken=674157584668526572786e5371774d4552512b3741513d3d@1aba4e1f294858f0e063658c010a6fec
El front recibe el parámetro tipo string legacyToken con el siguiente formato contextClient@uuid el cual al ser separado por el simbolo @ se obtendran 2 fragmentos.
Ejemplo: legacyToken=674157584668526572786e5371774d4552512b3741513d3d@1aba4e1f294858f0e063658c010a6fec
Se debe tomar el contextClient y desencriptarlo para identificar el cliente por medio del método decrypt-legacy-secure-token del api-legacy enviando en el parametro secureToken el contextClient recibido en el request de consumo de la aplicación legacy que hace la petición. Ejemplo:
Como se puede observar en la imagen de ejemplo el contextClient devuelve viva-dev.
Al desencriptar el conteextclient se debe consumir el método del api autenticate-microfrontend-launcher el cual puede ser consultado en la documentación de la Capa de lógica de negocio y pasar el contextClient como token en el header y el uuid como parametro.
Si el uuid está vigente se devolverán los parametros de sesión encriptados con el código 200. Lo que permitirá el acceso a la funcionalidad.
Si el uuid está vencido o es inválido se devolverá una excepcion con el código 500. Lo que evitará el acceso al microfrontend.
Al realizar la autenticación de forma correcta se obtendra un hash que contendrá los parametros de sesión pero estarán encriptados por lo tanto se debe consumir el servicio decrypt-legacy-secure-token el cual recibirá en el parámetro secureToken el hash obtenido del proceso de autenticación como se ve en la imagen.
El servicio devuelve un objeto json con la siguiente estructura.
{ "idOption": "00-00", "tituloVentana": "Maestro Terceros", "nitEmpresa": "811032187.8", "nombreEmpresa": "CAPACITACION", "codigoMempresa": "9999999999", "codigoUsuario": "3", "nombreUsuario": "ADMIN", "codigoDependencia": "9", "nombreDependencia": "AVIMA", "fechaSistemaModulo": "1/12/2022", "login": "SICOF" }
Se debe tomar de los parámetros desencriptado el idOption y consumir el servicio ecosystem-config-ws/frontend-route/api/v1/get para obtener el path del microfrontend como se ve a continuación;
De esta manera se asegura la inicialización dinámica de las rutas del frontend.