资源描述:
《《hinkphp权限管理》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、权限管理RBAC访问权限管理讲师:马明概述RBAC是指基于角色的访问控制,本掌主要描述了ThinkPHP的RBAC设计思想和使用实例,给出了一个统一和方便的权限控制解决方案。www.hztraining.com认证过程1.判断当前模块的当前操作是否需要认证2.如果需要认证并且尚未登录,跳到认证网关,如果已经登录执行53.通过委托认证进行用户身份认证4.获取用户的决策访问列表5.判断当前用户是否具有访问权限www.hztraining.com认证原理RBAC::saveAccessList();//获取并保存用户访问权限列表这个时候其实是获取当前登录用户对应的权限列表信息,系统会
2、把用户的权限列表保存在SESSION里面,格式类似于$_SESSION['AppName']['ModuleName']['ActionName']如果存在这样一个数据,就表示用户具有AppName的ModuleName模块的ActionName操作的访问权限,否则就表示没有权限。如果有些模块并没有定义操作,那么就会读取Public模块的操作权限。在应用系统的开发过程中,只需要设置相关的配置项和添加上面的认证方法,其他的认证和决策访问就由RBAC组件的AccessDecision方法自动完成了。你其实并不需要关心系统是如何判断用户是否具有权限的,这个在传统的权限控制模式里面是需
3、要手动来一一判断的。www.hztraining.com配置文件true,'USER_AUTH_TYPE'=>1,//默认认证类型1登录认证2实时认证'USER_AUTH_KEY'=>'authId',//用户认证SESSION标记'ADMIN_AUTH_KEY’=>‘administrator',//管理员用户名'USER_AUTH_MODEL'=>'User',//默认验证数据表模型'AUTH_PWD_ENCODER'=>'md5',//用户认证
4、密码加密方式'USER_AUTH_GATEWAY'=>'/Public/login',//默认认证网关'NOT_AUTH_MODULE'=>'Public',//默认无需认证模块'REQUIRE_AUTH_MODULE'=>'',//默认需要认证模块'NOT_AUTH_ACTION'=>'',//默认无需认证操作'REQUIRE_AUTH_ACTION'=>'',//默认需要认证操作//'RBAC_ERROR_PAGE'=>true,//定义权限错误页面'GUEST_AUTH_ON'=>false,//是否开启游客授权访问'GUEST_AUTH_ID'=>0,//游客的用户ID
5、'RBAC_ROLE_TABLE'=>'think_role','RBAC_USER_TABLE'=>'think_role_user','RBAC_ACCESS_TABLE'=>'think_access','RBAC_NODE_TABLE'=>'think_node',);returnarray_merge($config,$array);?>www.hztraining.com数据库分析表名称可以自定义,在配置文件可以自由配置think_user表根据实际需求1.管理员表和用户表是同一张表,则可以直接应用已建过的think_user表的用户2.管理员表和用户表分开存储,则
6、另建think_admin表,表名也可以自定义以下四张表有一些特定字段是必须设置的think_node节点表think_role角色分组表think_access权限分配表think_role_user用户分组表用户表是完全自定义的,但是要有一列自增长编号列think_user用户表www.hztraining.com权限E-R图www.hztraining.com节点表表名:think_node字段:id节点IDname项目名称、模块名称、操作名称title节点描述status节点状态remark详细描述sort节点排序pid父节点level节点分级项目对应1,模块对应2,操
7、作对应3数据模拟:(1,’Rbac’,’Rbac项目’,1,’项目名称’,0,0,1)(2,’User’,’用户模块’,1,’模块名称’,0,1,2)(3,’Goods’,’商品模块’,1,’模块名称’,0,1,2)(4,’add’,’添加操作’,1,’用户添加操作’,0,2,3)www.hztraining.com角色分组表表名:think_role字段:id角色分组IDname角色分组名称pid父分组status分组状态remark详细描述模拟数据:(1,’站长’,0,1,’站长拥有最高