中间件中抛出异常,Handler中无法捕获

中间件中抛出异常,Handler中无法捕获

中间件中抛出异常,Handler中无法捕获

中间件中抛出异常,Handler中无法捕获

还是不知道被哪个异常处理接管了…:triumph:

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 6
随波逐流

如果是要自定义 未认证的异常, 可以尝试在 App\Exceptions\Handler 中重写 unauthenticated()

    /**
     * Convert an authentication exception into a response.
     *
     * @param  \Illuminate\Http\Request                  $request
     * @param  \Illuminate\Auth\AuthenticationException  $exception
     *
     * @return \Symfony\Component\HttpFoundation\Response
     */
    protected function unauthenticated($request, AuthenticationException $exception)
    {
        return $request->expectsJson() ? response()->json(['code' => 401, 'message' => $exception->getMessage()]) : redirect()->guest($exception->redirectTo() ?? route('login'));
    }
2年前 评论
晏南风 (楼主) 2年前

这是用的dingoapi吗

2年前 评论
晏南风 (楼主) 2年前

应该先需要在App\Providers\AppServiceProvider.php文件内重写一下boot方法,交给 App\Exceptions\Handler 来接管处理。

  public function boot()
    {
        app('api.exception')->register(function (\Exception $exception) {
            $request = Request::capture();
            return app('App\Exceptions\Handler')->render($request, $exception);
        });
    }

然后在App\Exceptions\Handler.php文件中render方法中进行异常捕获处理

2年前 评论
晏南风 (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!