Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

421
Vistas
Vuelva a evaluar el middleware Nuxt.js sin un cambio de ruta

Me pregunto si es posible "reevaluar" esencialmente las condiciones del middleware sin cambiar realmente la ruta actual.

El propósito del middleware es evitar que los usuarios que no hayan iniciado sesión accedan al "panel de control". Mi problema es que un usuario podría iniciar o cerrar sesión sin cambiar necesariamente la ruta, pero no sería redirigido hasta que intente cambiar de página.

Tengo una acción de VueX que se activa cuando cambia el estado de autenticación del usuario, pero esto (por lo que puedo ver), no puede acceder a las variables de redirección o ruta.

 // /mixins/auth.js const reevaluateAuthStatus = (store, redirect, route) => { console.log(route) const redirectPolicy = route.meta.map((meta) => { if (meta.auth && typeof meta.auth.redirectPolicy !== 'undefined') { return meta.auth.redirectPolicy[0] } return [] }) const user = store.getters['auth/getUser'] if (redirectPolicy.includes('LOGGEDOUT')) { if (user) { return redirect('/dashboard') } } else if (redirectPolicy.includes('LOGGEDIN')) { if (!user) { return redirect('/login') } } } module.exports = { reevaluateAuthStatus }
 // /middleware/auth.js import { reevaluateAuthStatus } from '../mixins/auth' export default function ({ store, redirect, route }) { reevaluateAuthStatus(store, redirect, route) }

Agradezco cualquier ayuda en esto :)

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

No puede volver a evaluar un middleware AFAIK porque es principalmente esto (como se indica en la documentación )

los middlewares se llamarán [...] en el lado del cliente al navegar a otras rutas

2 formas limpias en las que aún puede lograr este IMO:

  • use algunos websockets, ya sea con socket.io o algo similar como Apollo Subscriptions , para que su interfaz de usuario tenga en cuenta los nuevos cambios
  • exporte su lógica de middleware a algún tipo de llamada, que podría activar nuevamente llamando al gancho $fetch nuevamente o cualquier otro gancho de búsqueda relacionado con datos en Nuxt

Algunas soluciones más feas probablemente serían:

  • hacer un setInterval interno y verificar si el estado real sigue siendo válido cada 5 segundos más o menos
  • muévase a la misma página en la que se encuentra con algo como this.$router.go(0) como se explica de alguna manera en la documentación del enrutador Vue

Aún así, en la mayoría de los casos, no creo que este pueda ser un gran problema si el usuario está desconectado, porque solo será redirigido una vez que intente algo.
Como si el usuario iniciara sesión, ni siquiera estoy seguro de en qué caso puede suceder esto si no está haciendo algo proactivo en su SPA.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda