yii2.0权限控制 ACF权限--登录验证
admin
2023-01-19 12:01:15
0

ACF是一种通过yii\filters\AccessControl类来实现的简单授权

一般在控制器中我们调用如下:
打开backend\controller\SiteController.php 我们看到这样一段代码

public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['login', 'error'],
'allow' => true,
],
[
'actions' => ['logout', 'index'],
'allow' => true,
'roles' => ['@'],
],
],
],
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'logout' => ['post'],
],
],
];
}

几个必须到配置:
1、配置验证类User

'user' => [
'identityClass' => 'common\models\Usermember',
'enableAutoLogin' => true,
'identityCookie' => ['name' => '_identity-frontend', 'httpOnly' => true],
'loginUrl'=>'/public/login'
],

2、继承IdentityInterface接口
一般来说,从数据库查找数据,只需要继承AR类即可,但是,我们这个是用户登录模型,核心是验证,所以自然需要实现核心的验证功能,就像LoginForm模型提到的validatePassword一样,实际的验证逻辑是在当前的User模型完成的。一般来说,实现IdentityInterface接口,需要实现以下方法:

public static function findIdentity($id); //①

public static function findIdentityByAccessToken($token, $type = null);   //②

public function getId();    //③

public function getAuthKey();   //④

public function validateAuthKey($authKey);    //⑤

3、登录到login()做相关调用验证:

public function login()
{
if ($this->validate()) {
if($this->rememberMe)
{
$this->_user->generateAuthKey();//③
}
return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 36002430 : 0);
}
return false;
}

4、对用到控制器类做配置

/**

  • {@inheritdoc}
    */
    public function behaviors()
    {
    return [
    'access' => [
    'class' => AccessControl::className(),
    'only' => ['userhome', 'signup'],
    'rules' => [
    [
    'actions' => ['','signup'],
    'allow' => true,
    'roles' => ['?'],
    ],
    [
    'actions' => ['userhome'],
    'allow' => true,
    'roles' => ['@'],
    ],
    ],
    ],
    'verbs' => [
    'class' => VerbFilter::className(),
    'actions' => [
    'logout' => ['post'],
    ],
    ],
    ];
    }

相关内容

热门资讯

【第一资讯】“问鼎娱乐.究竟有... 网上科普关于“问鼎娱乐有没有挂”话题很是火热,小编也是针对问鼎娱乐作*弊开挂的方法以及开挂对应的知识...
【第一资讯】“上海敲麻.真的有... 家人们!今天小编来为大家解答上海敲麻透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里买很...
【第一财经】“喜扣跑胡子.怎么... 有 亲,根据资深记者爆料喜扣跑胡子是可以开挂的,确实有挂(咨询软件无需打...
【第一财经】“掌中乐游戏中心.... 【第一财经】“掌中乐游戏中心.有挂吗?”太坑了果然有挂您好,掌中乐游戏中心这个游戏其实有挂的,确实是...
最新引进“七彩丹霞.辅助器?”... 最新引进“七彩丹霞.辅助器?”太坑了果然有挂您好,七彩丹霞这个游戏其实有挂的,确实是有挂的,需要了解...
【今日要闻】“荊州晃晃麻将.有... 家人们!今天小编来为大家解答荊州晃晃麻将透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里...
最新引进“喜扣跑胡子.究竟有挂... 网上科普关于“喜扣跑胡子有没有挂”话题很是火热,小编也是针对喜扣跑胡子作*弊开挂的方法以及开挂对应的...
我来教教您“玄龙牛牛.辅助开挂... 家人们!今天小编来为大家解答玄龙牛牛透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里买很...
今日重大消息“一喜棋牌.可以开... 今日重大消息“一喜棋牌.可以开挂吗?”确实真的有挂您好,一喜棋牌这个游戏其实有挂的,确实是有挂的,需...
【第一资讯】“丽水都莱.怎么开... 家人们!今天小编来为大家解答丽水都莱透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里买很...