질문을 삭제하지 말아주세요.!
 
1
0
-1

<?php

namespace App\Http\Middleware;

use Closure;

class CheckAuth
{
public function handle($request, Closure $next)
{
if(!auth()->check()){
return redirect(route('login'));
}
return $next($request);
}
}

로그인을 체크하는 미들웨어는 이렇게 코딩해놓고 


protected $routeMiddleware = [
......
'checkauth' => \App\Http\Middleware\CheckAuth::class,
];


커널에 이렇게 등록했습니다


public function __construct()
{
$this->middleware('checkauth', ['except' => ['login']]);
}


그리고 원하는 컨트롤러에가서 로그인을 할수있게 로그인창을 로그인을 검사하는 미들웨어를 제외하고싶어서

위와 같이 코딩했는데 


페이지가 작동하지 않습니다.

localhost에서 리디렉션한 횟수가 너무 많습니다.


ERR_TOO_MANY_REDIRECTS이런 에러가 나와서 로그인창으로 접속하면 미들웨어 검사가 제외되야 되는데 제외안되고 미들웨어가 작동되서 리다이렉션을 계속해서 나타나는 증상같습니다,,,, __construct 문법좀 확인해주실수있으세요?? 감사합니다

    CommentAdd your comment...

    1 answer

    1.  
      1
      0
      -1

      아래처럼 except를 함수로 써보시고

      $this->middleware('checkauth')->except('login');


      그래도 안되면 미들웨어 그룹에 해당 미들웨어가 등록되어있지는 않은지 확인해보세요

      미들웨어 그룹에 등록되어있으면 미들웨어가 무조건 적용됩니다

      https://laravel.kr/docs/5.6/middleware#middleware-groups

      1. 최윤석

        $this->middleware('checkauth')→except('login');

        해도 여전히 같은 상황이네요 ...


        protected $middlewareGroups = [
        'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        // \Illuminate\Session\Middleware\AuthenticateSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],

        'api' => [
        'throttle:60,1',
        'bindings',
        ],
        ];

        그룹창에도 설정되있는게 없는데 이상합니다 ㅠㅠ

      2. 최윤석

        감사합니다!!! 주신 힌트덕에 잘 해결됬어요 그룹이 문제였네요!!

      3. 소현진

        아니면 아이에 routes/web.php에서

        Route::group(['middleware'=>'checkauth'],function(){

            //checkauth 를거치지 않는 다른 라우트들

        });

        이렇게 한번 해보시죠

      CommentAdd your comment...