Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Laravel: middleware, authorization

Можно ли на уровне middleware проверять роль/доступ пользователя (и что вернуть при запрете)?

Вопрос проверяет понимание middleware, контроля доступа и корректной обработки запретов в HTTP-приложении

Короткий ответ

Да, в Laravel проверку роли или прав доступа можно делать прямо в middleware. Middleware выполняется до контроллера и может прервать запрос, если пользователь не имеет нужных прав. При запрете обычно возвращают HTTP-ответ с кодом 403 Forbidden или делают редирект. Такой подход позволяет централизовать логику доступа и не дублировать её в каждом контроллере.

Длинный ответ

Middleware в Laravel предназначены для фильтрации HTTP-запросов и отлично подходят для проверки прав доступа.

Определение

Определение: Middleware — это слой, который обрабатывает HTTP-запрос до или после выполнения контроллера.

Где проверять доступ

Перед началом стоит отметить, что middleware лучше использовать для общих правил доступа, а не для сложной бизнес-логики.

Пример middleware для проверки роли

class CheckRole
{
    public function handle($request, \Closure $next, string $role)
    {
        if (!$request->user() || !$request->user()->hasRole($role)) {
            abort(403);
        }

        return $next($request);
    }
}

Подключение middleware к маршруту

Route::get('/admin', function () {
    // ...
})->middleware('role:admin');

Что возвращать при запрете

  • abort(403) — стандартный вариант для API и backend-части

  • JSON с ошибкой и кодом 403 — для API

  • redirect()->route('login') — если пользователь не авторизован

  • redirect()->back() — в простых web-сценариях

Почему middleware — хороший выбор

  • Логика доступа централизована

  • Контроллеры остаются “чистыми”

  • Поведение едино для всех маршрутов

Краткий вывод

Проверку ролей и прав доступа на уровне middleware использовать можно и нужно, если правило общее для маршрута или группы маршрутов, а при запрете корректно возвращать 403 Forbidden или редирект в зависимости от типа приложения.

  • Аватар

    PHP Guru

    Mikhail Savin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    5

  • Сложность:

    4

Навыки

  • Laravel

    Laravel

Ключевые слова

#middleware

#authorization

Подпишись на PHP Developer в телеграм

  • Аватар

    PHP Guru

    Mikhail Savin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.