Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

214
Views
Implementación de protecciones de enrutador vue.js cuando la información del usuario proviene de una función asíncrona

Estoy trabajando en una aplicación Vue.js y necesito implementar protectores de enrutador para limitar el acceso según la función del usuario y evitar que un usuario no registrado acceda a la aplicación. El proceso de inicio de sesión involucra una aplicación externa (WSO2 Identity Server, específicamente), y la información del usuario recuperada se guarda en una tienda Vuex. El problema es que la función de inicio de sesión es asíncrona, por lo tanto, cuando se ejecutan las protecciones del enrutador, la información del usuario aún no está disponible. Para que funcione, llamé a la función de inicio de sesión dentro de una función asíncrona anónima y puse los guardias dentro de then bloque. Como no encontré ejemplos de este enfoque en Internet, me gustaría saber si es correcto o si hay una mejor manera de manejar este problema. Gracias a todos de antemano.

Aquí hay un ejemplo de mi código de enrutador:

 ... router code (async function() { // get user data and saves them in the vuex store await userService.initUserData(); })().then( function() { const isAuthenticated = store.getters.getIsAuthenticated; const userRole = store.getters.getUserRole; router.beforeEach((to, from, next) => { // check if user is logged in, // if not redirect to login page (LoginPage) if (to.name !== 'LoginPage' && !isAuthenticated) { next({ name: 'LoginPage' }); } else { if (to.meta.customerAuth) { if (userRole === 'Customer') { next(); } else if (userRole === 'Admin') { next({ name: 'AdminView' }); } else { next({ name: 'LoginPage' }); } } else if (to.meta.adminAuth) { if (userRole === 'Admin') { next(); } else if (userRole === 'Customer') { next({ name: 'CustomerView' }); } else { next({ name: 'LoginPage' }); } } } }) } );
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Debe conservar la información de su usuario en el almacenamiento local para que no necesite obtener permisos cada vez que actualice la página.

Lo que puede hacer si los permisos cambiaran para la validez de un token es devolver un código HTTP 401 que cerraría la sesión y redirigiría para iniciar sesión para obtener un nuevo token con los nuevos permisos.

A medida que almacena su información de usuario en el almacenamiento, no necesita esperar para configurar sus guardias.

El punto es: el inicio de sesión solo debe ocurrir una vez, si actualiza no debería tener que iniciar sesión nuevamente

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!