Laravel 4에서 그룹 경로에 여러 필터를 추가 할 수 있습니까?
API 중심 애플리케이션에 대한 2 가지 인증 방법이 있습니다. 하나는 표준 인증 (웹 사이트의 경우 "auth"필터링)과 토큰 (모바일 앱의 경우 "auth.token"필터)이있는 것입니다.
<?php
Route::group(array('prefix' => 'api/'), function() {
#Custom routes here
});
?>
이상적으로 는 두 필터 중 하나가 통과 하면 그룹에 액세스 할 수 있기를 바랍니다.
다음을 수행 할 수 있습니다.
Route::group(['before' => 'auth|csrf'], function()
{
//
});
그러나 필터 중 하나 가 통과 할 때 액세스 할 수 있도록 하려면 조금 더 작성해야합니다 (filters.php에).
function csrfFilter()
{
if (Session::token() != Input::get('_token'))
{
throw new Illuminate\Session\TokenMismatchException;
}
}
function authFilter()
{
if (Auth::guest()) return Redirect::guest('login');
}
Route::filter('csrf-or-auth', function ()
{
$value = call_user_func('csrfFilter');
if ($value) return $value;
else return call_user_func('authFilter');
});
route.php에서
Route::group(['before' => 'csrf-or-auth'], function()
{
//
});
필터가 통과 할 때 아무것도 반환하지 않아야합니다. 도움이 되었기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다