Página en construcción
Las aplicaciones FundewebJS funcionan con un enfoque basado en servicios lo que implica que las comunicaciones son sin sesión. No obstante en ocasiones nuestra aplicación debe guardar el estado debido a que navega hace una navegación a una aplicación externa y luego se vuelve a ésta, es un wizard donde los cambios sólo se persisten al final, etc.
Con las herramientas disponibles parece que guardar el estado en Vuex puede ser la solución pero eso tiene riesgos de seguridad ya que no se garantiza la privacidad de los datos mantenidos en Vuex. Aunque sean locales a una pestaña de un navegador, cualquier extensión maliciosa podría acceder a ellos y procesarlos como quiera.
En consecuencia no se debe almacenar en Vuex ningún dato que contenga información personal o cualquiera otra que, procesada desde el navegador pueda suponer un problema de seguridad y/o privacidad.
Para solventar el problema de tener que gestionar una sesión sin exponer datos sensibles se ha desarrollado un mecanismo que permitirá guardar en base de datos un JSON con la información de la sesión en curso que, combinado con un ID de sesión que se podrá almacenar en VUEX, nos permitirá simular una sesión web sin estar expuestos a una posible vulneración de la privacidad de los datos.
Es importante destacar que para un posible ataque en un navegador es más peligroso que los datos estén en Vuex que en la pantalla renderizada, ya que en el segundo caso tendría que acceder y analizar el html generado, mientras que en el primero ya tendría la información disponible sin necesidad de hacer ningún procesamiento adicional.
Ciclo de vida de una sesión
A la hora de gestionar una sesión deberemos tener en cuenta en nuestra aplicación cuándo debemos crearla, cuándo debemos usarla y cuándo debemos cargarla. El grafo que se muestra a continuación esquematiza el ciclo de vida que deben implementar los endpoints que requieran hacer uso de sesiones.
