在web式系统应用开发中, 多用户权限分配一直是标配的功能. Auth和RBAC都是thinkphp中权限认证支持的功能.他们的区别是什么呢?
相同点:
1.两种都是基于角色权限控制
2.都是同一个用户可属于多个角色或用户组
不同点:
Rbac:
1.Rbac是基于节点控制,根据3级节点,module,controller,action,节点类似与树形结构,3级节点间相互有关联
2.表关系:用户表->用户角色关联表->角色表->角色节点关联表->节点表
3.根据3级节点控制,粒度到操作action,每个节点为单一的模块,控制器或操作
Auth:
1.Auth是基于规则控制,定制规则和条件表达式 ,每一条规则都是独立的
2.表关系:用户表->用户和用户组关联表->用户组表->规则表
3.根据规则控制,可自由定制不同的规则,非常自由,同一个规则内可以定制多个不同节点(中间的关系:OR AND)
4.可定制规则表达式,比如定制积分表达式
直白的说二者功能差不多, 但是要应用到具体一个链接或者一个按钮上时,AUTH认证更方便一点.