ACF是一种通过yii\filters\AccessControl类来实现的简单授权
有两种角色 ?:未经认证的游客用户
@:已认证的用户
ACF可同过对角色设置权限控制访问
1)记得引入yii\filters\AccessControl;
use yii\filters\AccessControl;
2)设置behaviors方法
class PostController extends Controller
{
/**
* @inheritdoc
*/
public function behaviors()
{
return [
'verbs' => [
'class' => VerbFilter::className(),
'actions' =>
[
'delete' => ['POST'],
],
],
'access'=>[
'class'=>AccessControl::className(),
'rules'=>[
[
'actions'=>['index','view'], //赋予权限页面
'allow'=>true, //允许访问
'roles'=>['?'], //角色
],
[
'actions'=>['creat','view','update'],
'allow'=>true,
'roles'=>['@'],
],
], ],
];
}
除了以上基本规则,ACF其他规则
ips:浏览器的IP地址 可使用通配符*,为空则匹配所有用户
verbs:匹配请求方式(GET,POST)
matchCallback:PHP回调,以确定应用该规则
denyCallback:PHP回调,当规则禁止访问时候会调用
[
'actions'=>['gift'],
'allow'=>true,
'matchCallback'=>function($rule,$action){
return date('d-m')==='11-11'; //只允许11.11号访问
} ]