Laravel $ middlewareGroups исключение для неавторизованных маршрутов - PullRequest
0 голосов
/ 23 мая 2018

Я создал группу промежуточного программного обеспечения, но хочу исключить все неавторизованные маршруты, такие как:

  • / register
  • / login
  • /
  • и т. Д.

Вместо создания «охвата» вариантов коммутаторов для каждого неавторизованного маршрута, есть ли готовое исключение для маршрутов на $middlewareGroups?

Мне нужно использовать $ middlewareGroups, а не $ routeMiddleware.

Спасибо

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Что ж, я пойду дальше и отвечу на свой вопрос, но я свободно перейду к более лаконичному / лучшему ответу, если кто-нибудь поднимет перчатку или если Тейлор Отвелл ответит: P

Просто чтобыНапомним, что если вы создаете промежуточное ПО под $middlewareGroups, вы будете применять промежуточное ПО на всех маршрутах, я использую его для системы ролей / базовых разрешений, но никому не нужны разрешения для определенных страниц (которые напрямую связаны с не-Authстраниц), поэтому я искал простое исключение в одну строку.

Это мой темп.взломать я сделал:

 public function handle($request, Closure $next)
    {
        $response = $next($request);
        $nonAuth = $request->getPathInfo();

        switch ($nonAuth) {
            case "/":
                return $response;
            case "/register":
                return $response;
            case "/login":
                return $response;
            case "/logout":
                return $response;
            case "/home":
                return $response;
        }
// continue with regular Auth operations and so on and so forth
//for what you need out of this middleware.

        $userId = Auth::id();
        $user = User::findOrFail($userId);

}
0 голосов
/ 23 мая 2018

Нет хорошего способа исключить маршруты из группы промежуточного программного обеспечения в Laravel, поэтому лучшее, что мы можем сделать, это создать две отдельные группы промежуточного программного обеспечения

...