VerifyShopMiddleware.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019-06-05
  6. * Time: 18:30
  7. */
  8. namespace App\Http\Middleware;
  9. use App\Shop;
  10. use Closure;
  11. use Tymon\JWTAuth\Exceptions\JWTException;
  12. use Tymon\JWTAuth\Exceptions\TokenExpiredException;
  13. use Tymon\JWTAuth\Exceptions\TokenInvalidException;
  14. use Tymon\JWTAuth\Facades\JWTAuth;
  15. class VerifyShopMiddleware {
  16. /**
  17. * Handle an incoming request.
  18. *
  19. * @param \Illuminate\Http\Request $request
  20. * @param \Closure $next
  21. * @return mixed
  22. */
  23. public function handle($request, Closure $next)
  24. {
  25. try {
  26. $token = JWTAuth::decode(JWTAuth::getToken());
  27. if(!empty($token)){
  28. if($token['type'] == 2){
  29. $shop = Shop::where(['shop_id'=>$token['shop']->shop_id])->first();
  30. if($shop->status == 0){
  31. $error = [
  32. 'message' => '商户已禁用,禁止操作',
  33. 'code' => 401,
  34. ];
  35. return response()->json($error);
  36. }
  37. }
  38. }
  39. //$data = JWTAuth::decode($token);
  40. } catch (TokenExpiredException $e) {
  41. $error = [
  42. 'message' => 'Token is Expired',
  43. 'code' => 401,
  44. ];
  45. return response()->json($error);
  46. } catch (TokenInvalidException $e) {
  47. $error = [
  48. 'message' => $e->getMessage(),
  49. 'code' => 401,
  50. ];
  51. return response()->json($error);
  52. } catch (JWTException $e) {
  53. $error = [
  54. 'message' => $e->getMessage(),
  55. 'code' => 401,
  56. ];
  57. return response()->json($error);
  58. }catch (\Exception $e){
  59. $error = [
  60. 'message' => $e->getMessage(),
  61. 'code' => 401,
  62. ];
  63. return response()->json($error);
  64. }
  65. return $next($request);
  66. }
  67. }