1

|嗨,我正在使用 Laravel 5.2,试图让 JWT ( https://github.com/tymondesigns/jwt-auth ) 工作,所以问题是我无法捕获异常,我想发送一个发生错误时的自定义响应,但我无法捕捉到它,phpstorm 提示命名空间错误Tymon\JWTAuth\**Exceptions**\TokenInvalidException,但我去供应商文件夹并检查命名空间是否正确,这是代码:

    try {

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

        return ['token_invalid'];

    }
    return $user;

所以return ['token_invalid'];当我错过令牌时不会执行,它只是在整个屏幕上抛出异常

4

2 回答 2

0

你忘了backslash

\Tymon\JWTAuth\Exceptions\JWTException $e
于 2016-12-27T06:11:51.597 回答
0

ops 应该用作JWTException命名空间,这里是工作代码:

try {
    if (!$user = JWTAuth::parseToken()->authenticate()) {
        return response()->json(['user_not_found'], 404);
    }
} catch (JWTException $e) {
    return ['token_invalid'];
}

return $user;
于 2016-08-14T22:56:00.327 回答