Выбор ответа Junior Laravel: контейнер и очереди обновлено
Middleware в Laravel
Вопрос
Где проверять, что пользователь вошёл в систему, для группы маршрутов кабинета?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Повесить middleware auth на группу маршрутов. Middleware оборачивает обработку запроса: Route::middleware("auth")-group(...) закрывает все маршруты группы, неавторизованных перенаправит на вход или вернёт 401 для API.
Варианты ответа
- Повесить middleware
authна группу маршрутовправильный ответ - Проверять
Auth::check()в каждом методе контроллера - В модели
Userчерез глобальный скоуп по сессии - В миграции через ограничение на таблицу
sessions
Разбор
Middleware оборачивает обработку запроса: Route::middleware("auth")->group(...) закрывает все маршруты группы, неавторизованных перенаправит на вход или вернёт 401 для API. Проверка в каждом методе дублирует код и легко забывается. Модель и миграции не участвуют в обработке запроса. Права на конкретные действия проверяют политики (Gate, $this->authorize).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.