当前位置:  开发笔记 > 编程语言 > 正文

如何在Laravel 4路由组上应用多个过滤器?

如何解决《如何在Laravel4路由组上应用多个过滤器?》经验,为你挑选了1个好方法。

是否可以在Laravel 4中的组路由上添加多个过滤器?

我有一个API中心应用程序的2种身份验证方法.一个具有标准身份验证(网站过滤器"auth"),一个带有令牌(过滤器"auth.token"用于移动应用程序).

 'api/'), function() {
        #Custom routes here
    });
?>

理想情况下,我希望如果两个过滤器中的一个通过,则可以访问组.



1> edpaez..:

您可以:

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');
});

在routes.php中

Route::group(['before' => 'csrf-or-auth'], function()
{
     //
});

请记住,过滤器通过时您必须不返回任何内容.我希望这可以帮助你!

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有