2016-10-21 2 views
0

나는 laravel 5.2를 entrust/zizaco와 함께 사용하고 있습니다. 사용자가 인증 할 때 admin 역할을 갖지만 app_user 역할 미들웨어에 dd (1)을 넣으면 요청이 입력됩니다 !! 요청은 admin 및 business_owner 역할 미들웨어에도 입력됩니다. 그리고 사용자가 로그 아웃 한 후에도 각 요청은 인증 미들웨어를 통과합니다 !!요청은 각 미들웨어로 전송됩니다. laravel 5.2

Route::group(['middleware' => 'auth'], function() { 
    Route::group(['middleware' => ['role:admin']], function(){ 
     // Routes go here 
    }); 

    Route::group(['middleware' => ['role:app_user']], function(){ 
     // Routes go here 
    }); 

    Route::group(['middleware' => ['role:business_owner']], function(){ 
     // Routes go here 
    }); 
}); 
+0

나는 당신의 문제를 알지 못했다,하지만 당신은 kernel.php 파일에 미들웨어를 등록 했습니까? – ivahidmontazer

+0

예. 나는 등록했다. 다른 방법으로 물어 보겠습니다. 사용자가 인증되지 않은 경우 요청에 '인증'미들웨어를 입력해야합니까? –

답변

0

예, 요청은 미들웨어 인증으로 입력해야하며 미들웨어에 코드를 작성할 수 있습니다. 이 laravel가 인증 사용자를위한 미들웨어에 내장되어 있습니다 :

public function handle($request, Closure $next) 
    { 
     if ($this->auth->guest()) { // if user isn't authenticated 
      if ($request->ajax()) { // if request is ajax 
       return response('Unauthorized.', 401); // return 401 res 
      } else { 
       return redirect()->guest('login'); // else redirect login page 
      } 
     } 
     return $next($request); // return next res(e.g dashboard) if user is authenticated 
    }