+
95
-

Vue多角色权限验证如何实现?

Vue多角色权限验证如何实现?

网友回复

+
15
-

通过router.beforeEach((to, from, next) 来进行判断

    // 假设角色有两种:admin 和 user
    // 这里是从后台获取的用户角色
    const role = 'user'
    // 在进入一个页面前会触发 router.beforeEach 事件
    router.beforeEach((to, from, next) => {
      if(to.meta.roles!= undefined){
           if (to.meta.roles.includes(role)) {
            next()
        } else {
            next('/login')
        }
      }else{
           next()
      }
       
    })

完整可运行代码如下:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum=1.0,minimum=1.0,user-scalable=0" />
    <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/vue@2.6.1.js"></script>
    <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/vue-router-3.01.js"></script>

</head>

<body>
    <div id="app">
        <h1>Hello App!</h1>
        <p>
            <!-- 使用 router-link 组件来导航. -->
            <!-- 通过传入 `to` 属性指定链接. -->
            <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
            <router-link to="/foo">Go to Foo</router-link>
            <router-link to="/bar">Go to Bar</router-link>
        </p>
        <!-- 路由出口 -->
        <!-- 路由匹配到的组件将渲染在这里 -->
        <router-view></router-view>
    </div>


    <script>
       ...

点击查看剩余70%

我知道答案,我要回答