Выбор ответа Junior Laravel: контейнер и очереди обновлено

Middleware в Laravel

Вопрос

Где проверять, что пользователь вошёл в систему, для группы маршрутов кабинета?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Повесить middleware auth на группу маршрутов. Middleware оборачивает обработку запроса: Route::middleware("auth")-group(...) закрывает все маршруты группы, неавторизованных перенаправит на вход или вернёт 401 для API.

Варианты ответа

  1. Повесить middleware auth на группу маршрутовправильный ответ
  2. Проверять Auth::check() в каждом методе контроллера
  3. В модели User через глобальный скоуп по сессии
  4. В миграции через ограничение на таблицу sessions

Разбор

Middleware оборачивает обработку запроса: Route::middleware("auth")->group(...) закрывает все маршруты группы, неавторизованных перенаправит на вход или вернёт 401 для API. Проверка в каждом методе дублирует код и легко забывается. Модель и миграции не участвуют в обработке запроса. Права на конкретные действия проверяют политики (Gate, $this->authorize).

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.