浏览代码

'新增首页中间件用户信息判断'

zhuchengjie 3 年之前
父节点
当前提交
2f2991ce3d
共有 3 个文件被更改,包括 60 次插入3 次删除
  1. 2 1
      app/Http/Kernel.php
  2. 54 0
      app/Http/Middleware/QuickAppUserInfoRefresh.php
  3. 4 2
      app/Http/Routes/QuickApp/QuickAppRoutes.php

+ 2 - 1
app/Http/Kernel.php

@@ -48,6 +48,7 @@ class Kernel extends HttpKernel
     protected $routeMiddleware = [
         'throttle'  => \Illuminate\Routing\Middleware\ThrottleRequests::class,
         'checkSign' => \App\Http\Middleware\CheckSign::class,
-        'userstatus'=> \App\Http\Middleware\QuickAppUserStatus::class
+        'userstatus'=> \App\Http\Middleware\QuickAppUserStatus::class,
+        'userrefresh'=> \App\Http\Middleware\QuickAppUserInfoRefresh::class
     ];
 }

+ 54 - 0
app/Http/Middleware/QuickAppUserInfoRefresh.php

@@ -0,0 +1,54 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use App\Modules\SendOrder\Services\SendOrderService;
+use App\Modules\User\Services\QappUserService;
+use App\Modules\User\Services\UserService;
+use Closure;
+use Exception;
+use Tymon\JWTAuth\Middleware\BaseMiddleware;
+
+class QuickAppUserInfoRefresh extends BaseMiddleware
+{
+    /**
+     * Handle an incoming request.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  \Closure  $next
+     * @return mixed
+     */
+    public function handle($request, Closure $next)
+    {
+        // 获取头部信息
+        $package     = $request->header('x-package', '');
+        $sendOrderId = $request->header('send-order-id', 0);
+
+        // 判断是否登录
+        $token = $this->auth->setRequest($request)->getToken();
+        if ($token) {
+            try {
+                //获取用户信息
+                $user = $this->auth->authenticate($token);
+                if ($sendOrderId) {
+                    try {
+                        $result = SendOrderService::recordUserSendOrder($user->id, $sendOrderId);
+                        if($result){
+                            UserService::setUserSendOrder($user->id, $sendOrderId);
+                        }
+                    } catch (\Exception $e) {
+                        myLog('QuickAppGetUserFromToken-sendOrderId')->error($e);
+                    }
+                }
+                // 设置全局信息
+                (new QappUserService)->setGolableUser($user->id, $package);
+            } catch (Exception $e) {
+                myLog('QuickAppGetUserFromToken')->info($e->getMessage());
+                return response()->error('QAPP_NOT_LOGIN');
+            }
+
+        }
+
+        return $next($request);
+    }
+}

+ 4 - 2
app/Http/Routes/QuickApp/QuickAppRoutes.php

@@ -21,8 +21,10 @@ Route::group(['domain' => env('QUICKAPP_DOMAIN'), 'namespace' => 'App\Http\Contr
     // 无需登录的接口
     Route::group(['prefix' => 'api'], function () {
 
-        // 首页
-        Route::get('books/{sex}/index', 'Book\BookController@getBookLists');
+        Route::middleware(['userrefresh'])->group(function (){
+            // 首页
+            Route::get('books/{sex}/index', 'Book\BookController@getBookLists');
+        });
 
         // 书库
         Route::get('books/library', 'Book\BookController@library');