rbac acl 页面+接口权限控制

本文介绍了RBAC(Role-Based Access Control)和ACL(Access Control List)结合实现页面及接口的权限控制。包括前端路由的beforeEach钩子函数用于白名单控制,后端利用Redis存储用户接口权限,通过装饰器进行接口权限验证。同时阐述了退出功能的实现,如清空浏览器缓存、设置Redis中token的黑名单并定时清理。
摘要由CSDN通过智能技术生成

rbac acl 页面+接口权限控制

beforeEach 钩子函数(实现路由白名单)页面的控制

在这里插入图片描述

先说这个beforeEach的钩子函数,它是一个全局的before钩子函数,(before each)意思是在 每次每一个路由改变的时候都得执行一遍。

router.beforeEach((to, from, next) => {
   
  // alert(to.path);
  let whiteList = ['/login', '/index']; // 定义白名单
  // List.indexOf(to.path)  路径在list中的下标  
  // 判断是否在白名单中,如果在进入下个页面
  if (whiteList.indexOf(to.path) >= 0) {
   
    next()
  } else {
   
    // 在不在允许的menu中
    let menu = JSON.parse(localStorage.getItem('resourcelist'));
    let mlist = [];
    // 遍历menu,将url取出来放入新的list中
    for (let i = 0; i < menu.length; i++) {
   
      mlist.push(menu[i]['url'])
    }
    // 是否在服务端配置的url中
    if (mlist.indexOf(to.path) >= 0) {
   
      next()
    } else {
   
      alert('您无权访问');
      return
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值