laravel中间件前置/后置的应用场景

laravel中间件前置/后置的应用场景

一、前置的场景

如下例子,为一个典型的前置的场景。

public function handle($request, Closure $next)

{

    if (Auth::guard('admin')->guest() && $request->path() != 'admin/login') {

        if ($request->ajax() || $request->wantsJson()) {

            return response('Unauthorized.', 401); 

        } else {

            return redirect()->guest('admin/login');

}

}

    return $next($request);

}

解析:

如我要把请求提交到admin的后端,首先要经过我定义的admin相关的中间件,意思大致是,若没有登录,但是又访问了不是登录的接口或者页面,则报错给接口或者重定向到对应的页面。若是合法登录了的用户,请求通过。

二、后置的场景

如下例子,为一个后置的场景。

public function handle($request, Closure $next)

{

    try {

        $response = $next($request);

    } catch (Exception $e) {

        $response = $this->handleException($request, $e);

    } catch (Error $error) {

        $e = new FatalThrowableError($error);

        $response = $this->handleException($request, $e);

}

    $this->debugbar->modifyResponse($request, $response);

    return $response;

}

解析:这个例子当请求完,需要把请求的详细信息都详细打印到用户的浏览器。后置场景一般是用作日志记录,请求分析等内容。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,973评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,178评论 6 13
  • 今天早上从连江妹妹家到福州市中心,与朋友见了个面,中午吃饭,然后拖延了一个多小时才坐车从福州到福清,下午三点到达...
    律人阅读 169评论 0 0
  • 2017.8.23.晴.心情日记.生活 -----------关于艺术,被说的最多的一句话便是“艺术源于生活又高于...
    叮铛之眼阅读 519评论 0 1
  • 【1107打卡话题】 今天的文章《你是那个缺乏安全感的人吗》你有什么感悟? 安全感(二) 1 这个话题,在我们《写...
    石三英语阅读 141评论 0 1