Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

En esta sección encontra dudas más frecuentes a la hora de integrarse con MFE

INDICE DE CONTENIDO

Table of Contents




MFE - Identificación

...

Expand
titleFAQ_MFE_IDENTIFICACIÓN_004: Problemas con Angular

Se han detectado problemas cuando la integración se realiza desde una aplicación en Angular, como la realización de varias llamadas simultaneas a MFE.

Configuración de proxy para redirección de peticiones POST de MFE

Tras realizar el login, MFE realiza una petición POST a la URL de retorno que se le ha proporcionado. Puesto que al servir aplicaciones angular en el entorno local

1

(En los entornos productivos, esta redirección viene configurada en el servidor - apache2, nginx…) sólo se admiten peticiones GET es necesario configurar un proxy para redirigir estas peticiones. Para ello es necesario:

  1. Crear un fichero con nombre proxy.conf.js en la raíz del proyecto adaptando el siguiente contenido:

    Code Block
    titleproxy.conf.js
    collapsetrue
    var PROXY_CONFIG = {
      "/acceso": { // URL de retorno para el login
        "target": "http://localhost:4200",
        "method": "GET",
        "secure": false,
        "changeOrigin": false,
        "bypass": function (req, res, proxyOptions) {
          if (req.method !== "POST") {
            return "/index.html";
          } else {
            console.log("PROXY: Peticion de tipo: " + req.method + ", url: " + req.url + ". Cambio a petición GET.");
          }
        }
      },
      "/acceso/cerrar-sesion": { // URL de retorno para el logout
        "target": "http://localhost:4200",
        "method": "GET",
        "secure": false,
        "changeOrigin": false,
        "bypass": function (req, res, proxyOptions) {
          if (req.method !== "POST") {
            return "/index.html";
          } else {
            console.log("PROXY: Peticion de tipo: " + req.method + ", url: " + req.url + ". Cambio a petición GET.");
          }
        }
      }
    };
    module.exports = PROXY_CONFIG;


  2. Incluirlo como configuración de del proyecto en en angular.json a la hora de desplegarlo en local:
Code Block
titleangular.json
collapsetrue
{
  ...
  "projects": {
    ...
    "architect": {
        ...
        "serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
			"proxyConfig": "proxy.conf.js",	
            ...
          },
          ...


Adaptación del onIdentification para ejecución en angular

Tras haber realizado un login correcto en MFE y haber vuelto de la redirección, MFE espera que la aplicación tenga un método JS onIdentification definido. Para realizar una mejor gestión de este método es posible trasladar esta llamada al contexto de un componente angular siguiendo la siguiente estructura:


Code Block
titleonIdentification
collapsetrue
export class MfeComponent {
  constructor(private zone: NgZone) {
    (window as any).onIdentification = this.onIdentification.bind(this);
  }
  
  /*
   * Método que se ejecuta una vez realizada la identificación correctamente en MFE.
   * Recibe el parámetro operation que incluye del usuario como nifCif, nombre, apellidos,
   * tipo de certificado (de persona físcica o jurídica)
   */
  public onIdentification(operation: any): void {
	this.zone.run( () => {
		// Gestionar aquí la identificación dentro del contexto de angular
	});
  }
}




...