zhangchangchun 5 年之前
父節點
當前提交
df3407fbd6
共有 3 個文件被更改,包括 78 次插入0 次删除
  1. 72 0
      app/Http/Middleware/VerifyShopMiddleware.php
  2. 1 0
      bootstrap/app.php
  3. 5 0
      routes/api.php

+ 72 - 0
app/Http/Middleware/VerifyShopMiddleware.php

@@ -0,0 +1,72 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-05
+ * Time: 18:30
+ */
+
+namespace App\Http\Middleware;
+
+use App\Traits\ShopInfoTrait;
+use Closure;
+use Tymon\JWTAuth\Exceptions\JWTException;
+use Tymon\JWTAuth\Exceptions\TokenExpiredException;
+use Tymon\JWTAuth\Exceptions\TokenInvalidException;
+use Tymon\JWTAuth\Facades\JWTAuth;
+
+class VerifyShopMiddleware {
+    use ShopInfoTrait;
+    /**
+     * Handle an incoming request.
+     *
+     * @param  \Illuminate\Http\Request $request
+     * @param  \Closure $next
+     * @return mixed
+     */
+    public function handle($request, Closure $next)
+    {
+
+        try {
+            $token =  JWTAuth::decode(JWTAuth::getToken());
+            if(!empty($token)){
+                if($token['type'] == 2){
+                    $shop = Shop::where(['shop_id'=>$token['shop']->shop_id])->first();
+                    if($shop->status == 0){
+                        $error = [
+                            'message' => '商户已禁用,禁止操作',
+                            'code' => 401,
+                        ];
+                        return response()->json($error);
+                    }
+                }
+            }
+            //$data = JWTAuth::decode($token);
+        } catch (TokenExpiredException $e) {
+            $error = [
+                'message' => 'Token is Expired',
+                'code' => 401,
+            ];
+            return response()->json($error);
+        } catch (TokenInvalidException $e) {
+            $error = [
+                'message' => $e->getMessage(),
+                'code' => 401,
+            ];
+            return response()->json($error);
+        } catch (JWTException $e) {
+            $error = [
+                'message' => $e->getMessage(),
+                'code' => 401,
+            ];
+            return response()->json($error);
+        }catch (\Exception $e){
+            $error = [
+                'message' => $e->getMessage(),
+                'code' => 401,
+            ];
+            return response()->json($error);
+        }
+        return $next($request);
+    }
+}

+ 1 - 0
bootstrap/app.php

@@ -71,6 +71,7 @@ $app->singleton(
 $app->routeMiddleware([
     'auth' => App\Http\Middleware\Authenticate::class,
     'jwt.chxq_auth' => App\Http\Middleware\JwtAuthMiddleware::class,
+    'chxq.shop_check' => App\Http\Middleware\VerifyShopMiddleware::class,
 ]);
 
 /*

+ 5 - 0
routes/api.php

@@ -52,5 +52,10 @@ $api->version('v1', [
 
         //公共配置
         $api->post('configIndex', 'ConfigController@index');
+        
+        $api->group(['namespace' => 'Product','middleware'=>'chxq.shop_check'], function($api) {
+            $api->get('statistics', 'IndexController@index');
+            $api->get('statistics/sales', 'IndexController@sales');
+        });
     });
 });