Estoy aprendiendo Vue JS y hasta ahora muy bien. Tengo una API que estoy usando para mi backend y, al iniciar sesión correctamente, me da acceso y un token de actualización. En Vue, estoy revisando localStorage para el token y, si es nulo, necesito redirigir a la página de inicio de sesión. Si está presente, necesito hacer una llamada API para verificar si es válida y redirigir para iniciar sesión o la ruta prevista según la respuesta. Hasta ahora, el código a continuación es lo que he logrado colocar, pero dice Detectado una redirección infinita en un protector de navegación al pasar de "/" a "/". Abortar para evitar un desbordamiento de pila. Esto se interrumpirá en la producción si no se soluciona.
Aquí está el código de mayo
router.beforeEach((to, from, next ) =>{ console.log(to.meta) let tokens = JSON.parse(localStorage.getItem('chikolo_tokens')) if (tokens!== null && to.meta.requiresAuth) { next() } else{ next({ name: 'login' }) } })Rutas
{ path: '/', name: 'login', component: Login, meta: { requiresAuth: false }, }, { path: '/admin/home/', name: 'home', component: AdminHome, meta: { requiresAuth: true }, }, { path: '/admin/users/', name: 'adminUsers', component: Users, meta: { requiresAuth: true }, },¿Cómo navego a la página de inicio de sesión si los tokens son nulos?
tokens!== null && to.meta.requiresAuth siempre es falso para / route.
Una redirección debería ocurrir solo para las rutas que requieren autenticación:
if (to.meta.requiresAuth && !tokens) { next({ name: 'login' }) } else{ next() }