Не нашёл, как сделать через DI... на вскидку сделал вот так, как ни странно, но оно заработало. Может поправите если что не так?
Добавил в common/config/main.php
'components' => [
// ...
'security' => [
'class' => 'common\components\CommSecurity',
],
],
В common\components\ скопировал Security.php удалил всё содержимое компонента, кроме одной функции и переименовал в CommSecurity.php
<?php
namespace common\components;
use yii\base\Security;
use Yii;
class CommSecurity extends Security
{
public function validatePassword($password, $hash)
{
if (!is_string($password) || $password === '') {
throw new InvalidParamException('Password must be a string and cannot be empty.');
}
if (function_exists('password_verify')) {
return password_verify($password, $hash);
}
$test = crypt($password, $hash);
$n = strlen($test);
if (($n !== 60) && ($n !== 30)) {
return false;
}
return $this->compareString($test, $hash);
}
}