vue后台管理系统之权限控制

目录

 

什么是权限控制?

如何实现权限控制

改进的解决方案

基本实现

登出再登入问题

页面刷新问题


什么是权限控制?

首先,我们按照最初的开发模式,在router.js中将所有的组件都注册在路由中.

import Vue from 'vue'
import Router from 'vue-router'
import { extend } from '../utils/router'

Vue.use(Router)
const router = new Router({
  routes: [
    {
      path: '/login',
      name: 'login',
      component: () => import('../views/login')    //懒加载
    },
    {
      path: '/home',
      name: 'home',
      roles: ['guest', 'admin'],    //用于验证路由能够被访问的角色
      component: () => import('../views/home')
    }
    ...
    {
      path: '*'
      redirect: '/404'
    }
  ]
})

export default router

然后你可能会在登录成功后,可以从后台返回的数据中得到用户的权限,通过这个权限,控制显示的导航菜单.

比如从后台接受到的数据是这样的:

{
    code: 200,
    ...
    rows: [
        {
            userCode: AKJUFIANJ,
            ...
            roles: 'admin'
        }
    ]
}

然后把用户信息存储到vuex当中去,通过判断用户的角色,得到导航菜单.

或许你会这样做:

//  导航菜单
<ul>
  <router-link
    v-for="(item, index) in menu"
    :key="index"
    :to='item.url'>
    {
  {item.name}}
  </router-link>
</ul>


computed {
    menu () {
        let menuArray = []
        // 用户为消费者,返回商城等导航
        if (store.getter.roles === 'guest') {
            menuArray = [
                {
                    name: '商城',
                    url: '/shop'
  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值