Как реализовать middleware-like логику в Yii2?
Используйте поведения (behaviors). Например в Yii из коробки есть такая штука:public function behaviors()
{
    $behaviors = parent::behaviors();
    $behaviors['authenticator'] = [
        'class' => HttpBearerAuth::className(),
    ];
    
    return $behaviors;
}
Если хотите свою логику для проверки токена, то создайте класс который будет имлпементировать интерфейс yii\filters\auth\AuthInterface у указывайте его в поведении. В случае ошибки авторизации бросайте UnauthorizedHttpException
Появилась идея, переопределить метод runAction:public function runAction($id, $params = [])
    {
        \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
        // Если условие истино, то выкидываю ошибку
        if (mt_rand(0,1) === 0) {
            return [
                   'status' => false,
                   'errors' => 'Ошибка'
            ];
        } else {
        // Иначе продолжаем выполнение
            parent::runAction($id, $params);
        }
    }
Работает как требуется, какие могут быть подводные камни? Рационально/разумно ли такое решение?