Глобальный фильтр / поведение Yii2 для принудительного аутентификации пользователя

В моем приложении Yii2 я пытаюсь заставить всех пользователей пройти аутентификацию. Если они еще не прошли проверку подлинности, они должны быть перенаправлены на страницу входа в систему.

В Yii1 я сделал это, создав класс, который будет проверять, был ли пользователь вошел в систему и onBeginRequest этот класс к поведению onBeginRequest в моем основном файле конфигурации.

 // Yii 1 'behaviors' => array( 'onBeginRequest' => array( 'class' => 'application.components.RequireLogin', ) ), 

Как я могу получить одно и то же поведение в Yii2? Я знаю, что могу использовать поведение для этого, но я не хочу добавлять это поведение в свой основной файл конфигурации, поэтому все запросы сначала проверяются на аутентификацию.

Метод рабочего поведения выглядит следующим образом:

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

    Итак, мне пришлось добавить следующий код ниже 'components' => [...]

      'as beforeRequest' => [ 'class' => 'yii\filters\AccessControl', 'rules' => [ [ 'actions' => ['login', 'error'], 'allow' => true, ], [ 'allow' => true, 'roles' => ['@'], ], ], ], 

    Подробнее о формате: http://www.yiiframework.com/doc-2.0/guide-concept-configurations.html#configuration-format

    Я на самом деле не разбираюсь в Yii2 (но очень сильно в Yii1).

    Одно решение, которое можно использовать в Yii1, и я предполагаю, что в Yii2 есть метод фильтрации в классе главного контроллера. Обычно один контроллер служит в качестве главного контроллера. Если у вас его нет, создайте его, и все должны его расширить. Вы можете реализовать это, вероятно, не как фильтр, а в других методах этого «главного контроллера» (init ()?) Если все действия проходят через класс контроллера, тогда вы настроены.