2016-08-14 80 views
1

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

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'];不执行当我错过了令牌时,它只是在整个屏幕上抛出异常

回答

0

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

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

return $user; 
0

你忘backslash

\Tymon\JWTAuth\Exceptions\JWTException $e 
+0

我想是。您可以使用\ Exception来捕获异常,但首选Typed异常。 – Madhab452