Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

226
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda