router 使用钩子函数对路由进行权限跳转

本文介绍了如何在Vue项目中使用router的beforeEach钩子函数实现全局路由权限控制。通过检查本地存储或Vuex状态中的用户角色,决定是否允许访问特定页面。例如,只有当角色为'admin'时才能进入需要管理员权限的页面,否则重定向到登录页或403错误页。同时,还考虑了IE10及以下浏览器的兼容性问题。
摘要由CSDN通过智能技术生成

router 使用钩子函数对路由进行权限跳转
1、首先在main.js中设置全局

//使用钩子函数对路由进行权限跳转
router.beforeEach((to, from, next) => {
    document.title = `${to.meta.title}`;
    // const role = localStorage.getItem('ms_username');
    const role = store.state.token;
    if (!role && to.path !== '/login') {
        // next('/login');
        next();
    } else if (to.meta.permission) {
        // 如果是管理员权限则可进入,这里只是简单的模拟管理员权限而已
        role === 'admin' ? next() : next('/403');
    } else {
        // 简单的判断IE10及以下不进入富文本编辑器,该组件不兼容
        if (navigator.userAgent.indexOf('MSIE') > -1 && to.path === '/editor') {
            Vue.prototype.$alert('vue-quill-editor组件不兼容IE10及以下浏览器,请使用更高版本的浏览器查看', '浏览器不兼容通知', {
                confirmButtonText: '确定'
            });
        } else {
            next();
        }
    }
});

2、在router.js中配置meta

{
		path: '/grade',
		component: () => import('../pages/school/grade.vue'),
		meta: {
			title: '学校管理'
			permission:'admin'
		}
	}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值