JwtAuthMiddleware.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. use Illuminate\Support\Facades\Log;
  5. use Tymon\JWTAuth\Exceptions\JWTException;
  6. use Tymon\JWTAuth\Exceptions\TokenExpiredException;
  7. use Tymon\JWTAuth\Exceptions\TokenInvalidException;
  8. use Tymon\JWTAuth\Facades\JWTAuth;
  9. use Tymon\JWTAuth\Http\Middleware\BaseMiddleware;
  10. class JwtAuthMiddleware
  11. {
  12. /**
  13. * Handle an incoming request.
  14. *
  15. * @param \Illuminate\Http\Request $request
  16. * @param \Closure $next
  17. * @return mixed
  18. */
  19. public function handle($request, Closure $next)
  20. {
  21. try {
  22. $token = JWTAuth::getToken();
  23. if(empty($token)){
  24. $error = [
  25. 'message' => 'token is required',
  26. 'code' => 401,
  27. ];
  28. return response()->json($error);
  29. }
  30. // $data = JWTAuth::decode($token)->authenticate();
  31. $data = JWTAuth::decode($token);
  32. Log::debug('parse-token='.json_encode($data));
  33. } catch (TokenExpiredException $e) {
  34. $error = [
  35. 'message' => 'Token is Expired',
  36. 'code' => 401,
  37. ];
  38. Log::debug('parse-token='.$e->getMessage());
  39. return response()->json($error);
  40. } catch (TokenInvalidException $e) {
  41. $error = [
  42. 'message' => $e->getMessage(),
  43. 'code' => 401,
  44. ];
  45. Log::debug('parse-token='.$e->getMessage());
  46. return response()->json($error);
  47. } catch (JWTException $e) {
  48. $error = [
  49. 'message' => $e->getMessage(),
  50. 'code' => 401,
  51. ];
  52. Log::debug('parse-token='.$e->getMessage());
  53. return response()->json($error);
  54. }catch (\Exception $e){
  55. $error = [
  56. 'message' => $e->getMessage(),
  57. 'code' => 401,
  58. ];
  59. Log::debug('parse-token='.$e->getMessage());
  60. return response()->json($error);
  61. }
  62. return $next($request);
  63. }
  64. }