JwtAuthMiddleware.php 1.7 KB

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