2014-04-22 9 views
0

로그인 한 사용자 만 사이트를 탐색 할 수 있도록 허용해야합니다. 필터 작업을 한 후에는 그룹 필터 만 있습니다. 그러나, 나는 많은 uri 있고 그룹 필터가있는 것은 시간이 걸릴 것입니다.laravel 4 로그인 한 사용자 만 사이트를 탐색 할 수 있습니다.

나는 사용자가 앱에 여부 filters.php에 기록되어있는 경우 검사를 시도 : 전에하지만 난 단지 로그인 허용해야

 App::before(function($request) 
{ 
    if(Auth::guest()) 
    { 
     return Redirect::guest('login'); 
    } 
}); 

"웹 페이지에 리디렉션 순환 오류가 있습니다"발생 사용자가 사이트의 페이지를 보려면 로그인 페이지로 리디렉션하십시오.

답변

2

귀하의 로그인 필터가 글로벌 필터입니다. 그래서, 그 필터는 또한 로그인 경로 전에 점검합니다. 그룹 필터를 사용하지 않으려면 리디렉션 루프를 방지하기 위해 uri가 글로벌 필터에서 동일한 로그인 URI가 아닌지 확인하십시오.

App::before(function($request) 
{ 
    if(Auth::guest() && $request->path() != 'login') 
    { 
     return Redirect::guest('login'); 
    } 
}); 
0

구현할 당신의 app/filters.php : 그래서

Route::filter('auth', function() 
{ 
    if (Auth::guest()) 
     return Redirect::guest('login'); 
}); 

Route::filter('auth.basic', function() 
{ 
    return Auth::basic(); 
}); 

Route::filter('guest', function() 
{ 
    if (Auth::check()) return Redirect::to('/'); 
    else 
     return Redirect::to('login'); 
}); 

당신은 내가 인증에 대한 필터를 정의하고이 우리가 라우터 사용을 이러한 필터를 말할 것 이후에 불법적 인 접근을 방지하고 로그인을 리디렉션 손님을 확인해 보는 바와 같이 , route.php :

Route::any('myRestrictedArea', array('before' => 'auth', 'uses' => '[email protected]', 'as' => 'user.myRestrictedArea')); 

지금 오직 인증 된 사용자는 제한된 페이지에 도달 할 수 있습니다.