路由权限配置(页面访问控制)
2019-10-22 本文已影响0人
Biao_349d
当我们不想给某些没有权限的用户访问某些页面的时候, 我们可以让他访问的时候,跳转到别的页面去。
/*
* @Description: In User Settings Edit
* @Author: your name
* @Date: 2019-10-17 18:49:59
* @LastEditTime: 2019-10-22 19:15:43
* @LastEditors: Please set LastEditors
*/
import Cookies from 'js-cookie'
import routes from '@_src/router/index.js'
import Store from '@_src/store/store.js'
// 不重定向白名单
const whiteList = ['/login']
export const beforeEach = (to, from, next) => {
const isLogin = Cookies.get('Token')
// 获取设置了权限的路由表;
const permissionRouters = routes.filter(item => {
// 设置了权限
if (
item.meta &&
item.meta.privilege &&
Array.isArray(item.meta.privilege) &&
item.meta.privilege.length
) {
return true
}
return false
})
if (whiteList.indexOf(to.path) !== -1) {
next()
} else if (!isLogin) {
next({
path: '/login'
})
} else if (
// 如果前往的路由是权限表里面的路由
// !判断是否有用户信息(是否登录了)
// !判断前往的路由是否有当前用户权限
permissionRouters.find(item => to.name === item.name) &&
!(
Store.state.login.userInfo &&
to.meta.privilege.indexOf(Store.state.login.userInfo.role) !== -1
)
) {
next({
path: '/login'
})
} else {
next()
}
}