《hinkPHP权限管理》PPT课件_第1页
《hinkPHP权限管理》PPT课件_第2页
《hinkPHP权限管理》PPT课件_第3页
《hinkPHP权限管理》PPT课件_第4页
《hinkPHP权限管理》PPT课件_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论