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

96
Visualizações
Proteja una ruta vue con múltiples guardias

Tengo un enrutador vue como este:

 import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) function guard (to, from, next) { if (localStorage.getItem('jwt')) { next() } else { next('/login') } } function admin (to, from, next) { if (localStorage.getItem('admin') && localStorage.getItem('admin') !== 'false' && localStorage.getItem('jwt')) { next() } else { next('/noadmin') } } export default new Router({ mode: 'history', routes: [ { path: '/', name: 'home', beforeEnter: guard, meta: { layout: 'default' }, component: () => import('@/components/dashboard.vue') }, { path: '/datacollector', name: 'datacollector', beforeEnter: guard, meta: { layout: 'default' }, component: () => import('@/components/datacollector.vue') }, { path: '/licensing', beforeEnter: admin, name: 'licensing', component: () => import('@/components/licensing.vue') }, { path: '*', name: '404', component: require('@/pages/404.vue').default } ] })

Mi problema ahora es el siguiente, si hay una entrada localStorage.getItem('datacollector') solo debería apuntar a la ruta /datacollector y /logout . Entonces, cuando inicia sesión, la página de inicio de sesión lo lleva a la ruta /datacollector . Pero también debería poder llamar a logout . Para los demás usuarios, debería ser que se les permita llamar a todo. ¿Cómo ajusto la guard de función? No importa lo que intente, siempre termino con un bucle. Gracias.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Suponiendo que desea enviar al usuario a la ruta /datacollector desde cualquier ruta, si hay una entrada para localStorage.getItem('datacollector') , excepto para la ruta /logout .

Simplemente puede verificar to.path y redirigir al usuario en consecuencia:

 function guard (to, from, next) { if (localStorage.getItem('jwt')) { if (localStorage.getItem('datacollector')) { if (to.path != '/datacollector' && to.path != '/logout'){ next('/datacollector'); } else { next(); } } else { next(); } } else { next('/login') } }
about 4 years ago · Juan Pablo Isaza 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