资源管理系统-基于角色的权限控制(role-based access control)

一、RBAC简介

RBAC(role-based access control),基于角色的权限控制系统,是指对于不同角色的用户,拥有不同的权限 。用户绑定角色,角色绑定菜单权限和资源权限,形成用户-角色-权限的关系,如下图所示。
用户角色权限关系图:
在这里插入图片描述

二、技术框架选择

前端:Vue、Vue-router、Axios、Js-cookie
后端:SpringBoot、SpringSecurity、MyBatis、MyBatisGenerator、PageHelper、Redis、JWT

三、用户登录及权限控制流程说明

1、前端发起登陆请求并带上用户登录参数。
2、后台接收到登录请求,根据用户的登录参数进行身份验证,身份验证通过后,生成并返回一个TOKEN。
3、前端收到登录成功返回信息后,拿到TOKEN,并存在缓存中。
4、前端页面跳转到首页,同时发送一个用户信息查询请求,将TOKEN作为请求头信息一起发送给后端。
5、后端拦截器拦截到查询请求,校验TOKEN,判断该请求是否需要权限,不需要校验权限直接放行,需要权限则查询用户资源权限,有权限就放行,无权限则抛出返回无权限访问异常。校验成功后从数据库中查询用户昵称及菜单权限,返回查询结果。
6、前端根据用户菜单权限展示菜单列表,用户无权限的菜单不展示。
7、前端发起其他请求,同样需要携带TOKEN。
8、后端拦截到请求,校验方式通步骤5

四、数据库设计

用户角色权限关系数据库模型
在这里插入图片描述
建表语句

/*
 Navicat Premium Data Transfer

 Source Server         : MysqlLocal
 Source Server Type    : MySQL
 Source Server Version : 50728
 Source Host           : localhost:3306
 Source Schema         : auth

 Target Server Type    : MySQL
 Target Server Version : 50728
 File Encoding         : 65001

 Date: 03/09/2020 11:49:20
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for auth_menu
-- ----------------------------
DROP TABLE IF EXISTS `auth_menu`;
CREATE TABLE `auth_menu`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `parent_id` bigint(20) NULL DEFAULT NULL COMMENT '父级ID',
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '前端名称',
  `title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单名称',
  `level` int(4) NULL DEFAULT NULL COMMENT '菜单级数',
  `icon` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '前端图标',
  `sort` int(4) NULL DEFAULT NULL COMMENT '菜单排序',
  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
  `hidden` int(1) NULL DEFAULT NULL COMMENT '前端隐藏',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 33 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for auth_resource
-- ----------------------------
DROP TABLE IF EXISTS `auth_resource`;
CREATE TABLE 
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值