Tengo una aplicación vue.js a la que se accede mediante un nombre de usuario y una contraseña.
Para cada perfil de usuario se presenta un tipo de menú diferente según sea ADMINISTRADOR o USUARIO.
Tengo un problema que cuando 2 usuarios actualizan la página (f5) al mismo tiempo, el perfil del usuario se repite al otro. Ejemplo
El usuario 1 contiene en su vista:
El usuario 2 contiene en su vista:
Cuando se presiona F5 al mismo tiempo en las páginas, el usuario 1 obtiene el mismo menú que el usuario 2.
Para configurar el menú y separar las restricciones, utilicé el método Created() del propio ciclo de vida de vue. Pero no sé si era la mejor manera de hacer esto.
A continuación se muestra el código que carga la información de la página, y también el punto donde valido las restricciones, si es ADMIN muestra un tipo de vista y si es USUARIO muestra otro tipo:
async created() { email = ''; user = null; restriction = null; await axios.get('/session').then(response => { email = response.data.currentUser; console.log('email', email); }, response => { (err) => console.log(err) }); await axios.get('/restriction').then(response => { restriction = response.data; }, response => { (err) => console.log(err) }); await axios.get(`/user/${email}`).then(response => { user = response.data; this.currentUserObj = response.data; }, response => { (err) => console.log(err) }); await axios.get("/project").then(response => { this.projectListChart = response.data; }); this.functions_ids.forEach( function (functions) { restriction.forEach( function (restriction) { if (restriction.feature_id == functions.id) { if ('ROLE_ADMIN' == user.systemRole) { functions.show = true; } else if (restriction.profile_nme == user.data.projectRole || restriction.profile_nme == "Usuário") { functions.show = false; } } } ); } ); app.dashboardProjectChart(); app.dashboardPendingTasksChart(); app.loadDashboardCalendar(); app.billType(); },¿Alguien puede ayudarme en lo que puedo hacer para ajustar esto?
En el backend la información se está separando correctamente, porque imprimí la sesión y los datos del usuario y son correctos.