加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-14 19:49:46 所属栏目:大数据 来源:网络整理
导读:是否可以在Laravel 4中的组路由上添加多个过滤器? 我有一个API中心应用程序的2种身份验证方法. 一个具有标准身份验证(网站过滤器“auth”),一个带有令牌(过滤器“auth.token”用于移动应用程序). ?php Route::group(array('prefix' = 'api/'),function() {
是否可以在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 IlluminateSessionTokenMismatchException;
    }
}
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()
{
     //
});

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读