yii2授权之ACF
授权是指验证用户是否允许做某件事的过程,在yii2中中简单来讲就是是否允许某类访客是否能访问某个controller或者是其下的action。想一个这样的场景,一个师生交互平台,分为三部分:管理员,教师,学生。那在登录时,肯定要限制防止不同身份的访客登录不对称的页面,比如管理员只能登陆后台的管理页面,而其他身份的访客则不能登录了。
在yii2中提供两种授权管理途径
(1)ACF存取控制授权(较为简单,适合访客权限设置简单的情景)
(2)RBAC基于角色的存取授权控制(较为复杂,适合博客,论坛等大型网站)
本文只说ACF,RBAC以后再说。
ACF授权管理
1简介:
在yii2中存取控制过滤器(ACF)是一种通过 yii\filters\AccessControl 类来实现的简单授权方法,非常适用于仅需要简单的存取控制的应用。ACF本质上来说就是一个过滤器 filter,可在控制器或者模块中使用。它的原理,其实就是添加了一个过滤器,在设置了AFC后,访问这个action之前就必须先经过这个过滤器,要是没有相应的权限,则会被打回,提示错误等。就像是洗米时的筛子。
2.如何设置ACF:
要知道yii2设计网页存放在view文件中,而要想访问网页就必须通过访问对应controller下对应渲染页面的action所以在对页面进行访问限制时,我们实际上是通过限制对应的action实现的。ACF正是如此。比如我们需要在SiteController中限制 index 只能为登录用户使用的话可以这样写首先在SiteController 文件最上面声明引用yii2中的类 use yii\filters\AccessControl;然后在SiteController类中添加一个函数 behaviors()