实例
|
|
验证流程
AccessControl过滤器
注意,如果AccessControll配置的需要验证的action,在配置的rules中如果验证没有通过或者没有rule来验证当前请求的action(也就是不符合所有rule需要验证的action)都会拒绝访问
only
和 except
配置
only
表示需要验证的 actionId
,如果为空,这个控制器的所有action都将会向下进行验证逻辑
except
表示过滤掉的 actionId
这些action将不会走校验, except
的优先级更高,如果同时属于 only
和 except
那么这个action将不会走验证
denyCallback 配置
这个是配置一个匿名函数,一般也不用配置,在 rule 被拒绝的时候如果 rule 没有配置 denyCallback
将会执行这个,通常用来抛出异常的,可以参考 yii的兜底方法 denyAccess
AccessRule 验证规则
配置
|
|
最后两个参数也是验证的关键1234567role => ['@', '?', 'otherRole']? : 表示允许未登录的访问 @ : 表示登录才能访问otherRole : 其他的都是对应的权限/角色 详见RBAC roleParams => function($rule){} || String || Array # (算出来的)值将会作为权限的参数