基于角色的权限控制

Posted 小苹果小可爱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于角色的权限控制相关的知识,希望对你有一定的参考价值。

首先要明白的有一个表就是需要记录整个项目中控制器和方法,这样在权限检测的时候就可以检测数据库对应的角色有没有这个控制器或者方法的权限,

但是需要明白的是在开发的过程中当然需要把这种权限给取消,这样在开发过程是需要增加一个控制器或者方法就不需要验证权限,然后开发好了之后就需要

在权限表中增加该控制器和方法。

一般基于角色的权限控制,需要用到下面的几张表

1.用户表2,权限表,3.角色表,4权限角色关系表5用户角色关系表

这种方式是用户通过,用户角色关系表查询出自己的角色,然后通过权限角色关系表查出,自己的权限表,然后权限表就是控制器与方法的笛卡尔积,然后

查询数据库得到控制器和方法的二维数组,然后根据THINKphp的中关键字获取当前的控制器和方法来得到是否在该二维数组中,就可以让当前用户是否可以访问

一般权限控制写在基础的控制器的初始化方法,比如baseController,AdminController,然后所有继承这些控制器的控制器就自动验证自己权限,就不需要自己再去写了

以上是关于基于角色的权限控制的主要内容,如果未能解决你的问题,请参考以下文章

基于角色的访问控制 (RBAC)权限管理

基于角色的权限访问控制初步

goRBAC —— Go 语言基于角色的权限控制框架

图文详解基于角色的权限控制模型RBAC

RBAC基于角色的访问控制

RBAC 基于角色的访问控制