Я хочу отфильтровать некоторые из моих маршрутов в зависимости от роли пользователя.
например, у меня есть 2 типа пользователей: admin
и viewer
.
как можноЯ фильтрую маршрут, поэтому, если у кого логин viewer
, он не может получить доступ к маршруту, имеет мета admin
.
То, что я пробовал до сих пор.
Это мой general.js
export function initialize(store, router) {
router.beforeEach((to, from, next) => {
const requiresAuth = to.matched.some(record => record.meta.requiresAuth);
const currentUser = store.state.currentUser;
console.log(currentUser)
if(requiresAuth && !currentUser) {
next('/loginadmin');
} else if(to.path == '/loginadmin' && currentUser) {
next('/homeadmin');
} else if(to.path == '/login') {
next('/homeadmin');
}else {
next();
}
});
axios.interceptors.response.use(null, (error) => {
if (error.response.status == 401) {
store.commit('logout');
router.push('/loginadmin');
}
return Promise.reject(error);
});
if (store.getters.currentUser) {
setAuthorization(store.getters.currentUser.token);
}
}
export function setAuthorization(token) {
axios.defaults.headers.common["Authorization"] = `Bearer ${token}`
}
и это мой маршрут
{
path: '/homeadmin',
component: Home,
meta: {
requiresAuth: true
is_admin: 'admin'
}
},
{
path: '/homeadmin',
component: Home,
meta: {
requiresAuth: true
}
},
Я сохранил роль в const currentUser = store.state.currentUser;
Полный путь для получения роли пользователя: store.state.currentUser.role
как я могу это сделать?