Поведение Yii2 в контроллере не работает

У меня нормально работает контроллер, и я хочу прикрепить туда поведение базовой аутентификации. Я добавляю метод behaviors() к контроллеру и var_dump($this->behaviors); в до действия. Все правильно. Проблема в том, что HttpBasicAuth не работает с методом.

Вот мой код:

public function behaviors()
{
return [
'basicAuth' => [
'class' => \yii\filters\auth\HttpBasicAuth::className(),
'auth' => function ($username, $password) {
if (! $this->isValidUser($username, $password)) {
return User::findByUsername($username);
}

return false;
}
],

];
}

0

Решение

auth параметр должен быть ключом basicAuth массив:

public function behaviors()
{
return [
'basicAuth' => [
'class' => \yii\filters\auth\HttpBasicAuth::className(),
'auth' => function ($username, $password) {
// ...
}
],
];
}

http://www.yiiframework.com/doc-2.0/yii-filters-auth-httpbasicauth.html

0

Другие решения

ребята, я решил эту ошибку.

Если мы хотим вызвать поведение и у нас есть метод beforeAction в нашем контроллере.
Ваш beforeAction должен выглядеть так. Метод, который вызывает поведение, расположенное в методе beforeAction родительского класса.

public function beforeAction($event)
{
...

return parent::beforeAction($event);
}
-1