【问题标题】:Laravel - Unable to catch Tymon JWT TokenInvalidExceptionLaravel - 无法捕获 Tymon JWT TokenInvalidException
【发布时间】:2018-01-09 11:10:25
【问题描述】:

我正在使用 Laravel 5.4 框架创建一个 API。但是,使用 JWT 令牌,当我输入错误的令牌时,我无法捕获 InvalidTokenException。请参阅我的代码和建议。谢谢!

    $token = $request->token;
    try{
        $user = JWTAuth::toUser($token);
    }catch(\Tymon\JWTAuth\Exceptions\TokenInvalidException $e){     //NOT CATCHING...
        $error = 'Invalid token';
        return response()->json(compact('error'));
    }

【问题讨论】:

  • 异常的命名空间是否正确
  • @DestinationN 是的,它是正确的命名空间。谷歌搜索并获得了关于捕获异常的相同结果
  • 也许你导入了异常,所以你可以删除除异常名称之外的所有内容
  • @DestinatioN 实际上已经尝试过 (TokenInvalidException $e),但它仍然没有被捕获。

标签: php laravel-5 exception-handling jwt


【解决方案1】:

它可能会抛出一个与您试图捕获的异常不同的异常。 尝试使用任何异常来捕获它,看看这是否有效。如果是这样,命名空间很可能不正确。

  $token = $request->token;
  try{
      $user = JWTAuth::toUser($token);
  }catch(\Exception $e){    
    $error = 'Invalid token';
    return response()->json(compact('error'));
  }

【讨论】:

  • 嗨帕特里克,尽管使用了一般异常,我仍然无法捕捉到它。这确实很奇怪
  • 这很奇怪。您是否 100% 确定在该位置引发异常?不在代码中的其他地方?
猜你喜欢
  • 2016-03-18
  • 1970-01-01
  • 2018-11-28
  • 2017-06-10
  • 2018-03-31
  • 2017-09-17
  • 2020-05-11
  • 2016-09-16
  • 2019-05-22
相关资源
最近更新 更多