Laravel 4 中是否可以在组路由上添加多个过滤器?
对于以 API 为中心的应用程序,我有 2 种身份验证方法。
一种具有标准身份验证(针对网站过滤器“auth”),一种具有令牌(针对移动应用程序过滤器“auth.token”)。
<?php
Route::group(array('prefix' => 'api/'), function() {
#Custom routes here
});
?>
理想情况下我希望这样如果两个过滤器之一通过,组可访问。
You can:
Route::group(['before' => 'auth|csrf'], function()
{
//
});
但是,如果您想让它可访问,如果either过滤器通过,你必须多写一点(在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');
});
在routes.php中
Route::group(['before' => 'csrf-or-auth'], function()
{
//
});
请记住,当过滤器通过时,您不必返回任何内容。
我希望这可以帮助你!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)