Читаем про HTTP Middelware, request-response фреймворки, не зацикливаемся на MVC. В итоге влоу выходит таким:
Предположим что у нас есть интерфейс Kernel содержащий метод handle, который на вход принимает Request и на выход выдает Response. Далее...
- Собираем Request из глобальных переменных
- Передаем его в херню реализующую Kernel
- за счет применение паттерна адаптер можно сделать много вложенных друг в дружку реализаций интерфейса Kernel. Одна реализация ресолвит рауты, вторая - авторизацию хэндлит, третья добавляет CORS... и самая внутренняя уже вызывает контроллер вашего так называемого MVC каркаса.
Профит - все можно покрыть тестами, все удобно скейлится, есть кучи готовых реализаций. В конце концов есть PSR-7.
В любом случае аутентификацию надо делать во фронт-контроллере, а авторизацию - уже могут быть варианты.