Je me demande s'il est possible de "réévaluer" les conditions de l'intergiciel sans modifier l'itinéraire actuel.
L'objectif de l'intergiciel est d'empêcher les utilisateurs non connectés d'accéder au "tableau de bord". Mon problème est qu'un utilisateur pourrait être connecté ou déconnecté sans nécessairement changer d'itinéraire, mais il ne serait pas redirigé jusqu'à ce qu'il essaie de changer de page.
J'ai une action VueX qui se déclenche lorsque l'état d'authentification de l'utilisateur change, mais cette action (d'après ce que je peux voir) ne peut pas accéder aux variables de redirection ou d'itinéraire.
// /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)
}
J'apprécie toute aide à ce sujet :)