首页 > 解决方案 > 如何更改 Tymon JWT 包 laravel 中的响应消息

问题描述

我想更改 Tymon JWT 包中的响应消息。例如,在使用无效令牌获取数据时,我收到此响应

 "message": "Invalid token.",
"exception": "Tymon\\JWTAuth\\Exceptions\\TokenInvalidException",

我需要将其从上面的响应更改为下面的响应

 "errors": "Invalid token.",
"exception": "Tymon\\JWTAuth\\Exceptions\\TokenInvalidException",

控制器代码

        try {
             $assign = AssignmentResource::collection(DB::table('assignments')->whereIn('assignments.academic_id',$ids)
            ->whereIn('assignments.batch',$batch)
            ->whereIn('assignments.course',$classid)->get());

            } catch (Tymon\JWTAuth\Exceptions\TokenExpiredException $e) {

                return response()->json(['success' => false,'errors' => $e,'status' => 404] );



            } catch (Tymon\JWTAuth\Exceptions\TokenInvalidException $e) {

                return response()->json(['success' => false,'errors' =>$e,'status' => 404] ); 

            } catch (Tymon\JWTAuth\Exceptions\JWTException $e) {

                return response()->json(['success' => false,'errors' =>$e,'status' => 404] );

            }

先感谢您

标签: laraveljwt

解决方案


您可以自定义 laravel 异常。

在里面 app/Exceptions/Handler.php你可以自定义你的消息。


    public function render($request, Exception $exception)
    {
        if ($request->is('api/*') || $request->expectsJson() || $request->is('webhook/*')) {
            if ($exception instanceof Tymon\JWTAuth\Exceptions\TokenInvalidExceptio) {

                return [
                    'errors' => $exception->getMessage(),
                    'exception' => 'your message'

                ];

            }
        }

    }

推荐阅读