改进json格式数据中的JWT异常处理

Hi i am currently having a problem about JWT Exception JSON Message. The problem is when i checkIn but my token is expired and i received this

"message": "Token has expired",
    "exception": "Tymon\\JWTAuth\\Exceptions\\TokenExpiredException",
    "file": "C:\\Users\\Snowfox1991\\Desktop\\Capstone project\\back-end\\back-end\\vendor\\tymon\\jwt-auth\\src\\Claims\\Expiration.php",
    "line": 31,

But when i write the getAuthUser() in APIController, i use try catch this one

public function getAuthUser(Request $request)
{
    $this->validate($request, [
        'token' => 'required'
    ]);

    $user = JWTAuth::authenticate($request->token);

    try {

        if (!$user = JWTAuth::parseToken()->authenticate()) {
            return response()->json(['user_not_found'], 404);
        }
    } catch (Tymon\JWTAuth\Exceptions\TokenExpiredException $e) {

        response()->json([
            'status' => 'error',
            'message' => 'Token has expired'
        ], $e->getStatusCode()

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

        response()->json([
            'status' => 'error',
            'message' => 'Token is invalid'
        ], $e->getStatusCode()

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

        response()->json([
            'status' => 'error',
            'message' => 'Token is absent'
        ], $e->getStatusCode()

    // }

    return response()->json(['user' => $user]);
}

And it still return the same as the original without the json format. Can i ask how to improve this exception using json format without handling the error like this. Thank you

php
dongxia19772008
dongxia19772008 我已经更新了关于getAuthUser()的代码并尝试捕获异常
接近 2 年之前 回复
dthswrp84966
dthswrp84966 好的,我现在将更新我的代码
接近 2 年之前 回复
drnbotxo449747
drnbotxo449747 好吧,正如我所说,没有看到更多的代码,任何答案/建议都只是简单的猜测。向我们展示所有相关代码(包括您使用正确名称空间的尝试),我们可能会提供帮助。
接近 2 年之前 回复
doumeilmikv7099
doumeilmikv7099 当我在github上检查返回错误时,他们说在Handle.php中更新但是当我更新时,消息是空的,没有任何json格式的消息。太奇怪了
接近 2 年之前 回复
dongshuxi3105
dongshuxi3105 如果那不是问题,那么您需要向我们展示更多代码。只显示catch()语句对我们来说还不够。
接近 2 年之前 回复
duanjia4817
duanjia4817 该代码是当我得到AuthUser()时,我使用trycatch来返回json格式错误。但我已经尝试了那个,仍然有500和错误像原始
接近 2 年之前 回复
dongqiang1226
dongqiang1226 该命令是否在命名空间中?然后,您需要使用反斜杠作为前缀的前缀:\Tymon\JWTAuth\Exceptions\TokenExpiredException或PHP将假定您编写的命名空间位于当前命名空间下。更好的是,在上课之前,使用Tymon\JWTAuth\Exceptions\TokenExpiredException添加异常;并且简单地执行:catch(TokenExpiredException$e)等等以及其他异常。
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐