Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

...

El frontend será el encargado de generar un ID de sesión cuando un usuario haga login y añadirlo en la cabecera UMU-User-SessionID de toda las peticiones a los diferentes backends junto con el token OAuth.

Info

Para el backend es necesario añadir la dependencia fundewebjs-lagar en el pom.xml y configurar las siguientes properties en el application.properties de HelmChart:

# FundeWebJS Habilitar filtro para cabeceras en logs MDC de lagar
fdwjs.api.lagar.enable=true
fdwjs.api.lagar.headers=UMU-User-UUID,UMU-Client-APP,UMU-User-SessionID


Inicio de la sesión

La primera vez que el usuario acceda a la aplicación, si ésta requiere de sesión, la creará en el endpoint que reciba la acción de inicio del proceso del usuario. Este endpoint se deberá encargar de: obtener el identificador del usuario que contiene el token OAuth ya validado y el identificador de sesión que vendrá como cabecera de la petición. Una ver obtenidos dichos campos almacenará en la tabla de sesiones todos los datos requeridos y ejecutará la lógica de negocio restante.

...

Una implementación que podemos hacer en nuestros servicios que inician un proceso es comprobar si existe una sesión en base de datos y notificar al usuario que ya tiene una sesión completa hasta el paso X, preguntando si quiere continuarla o empezar una nueva. Esta lógica puede ser útil para tener en cuenta los casos en que se produzca un fallo sin que se pudiera cerrar la sesión, por ejemplo que el usuario se quede sin conexión a mitad de un proceso, reinicie el equipo y vuelva a probar.

Librería de gestión de sesiones

Disponemos de una librería con los métodos necesarios para escribir, leer y borrar sesiones, documentado en esta guía: Librería de gestión de sesiones