getConfigByName('site_web_is_update'); $isUpdate = $isUpdate? $isUpdate : env('APP.WEB_IS_UPDATE'); if ($isUpdate){ // 非测试IP访问,直接拦截 $config = SystemConfigService::make()->getConfigByNames(['site_update_tips','site_access_ips']); $updateTip = isset($config['site_update_tips'])? trim($config['site_update_tips']) : ''; $accessIps = isset($config['site_access_ips'])? trim($config['site_access_ips']) : ''; $updateTip = $updateTip? $updateTip : '网站升级中'; $accessIps = $accessIps? $accessIps : env('APP.TEST_IPS'); $currentIp = get_client_ip(); if(empty($accessIps) || ($accessIps && !preg_match("/{$currentIp}/", $accessIps))){ return api_error_return(['msg'=> $updateTip, 'data'=>['tips'=>$updateTip,'is_update'=>true,'ip'=> $currentIp]]); } } if (RedisCache::get('is_update_data')){ return api_error_return(['msg'=>'更新数据中,请稍后几秒', 'data'=>null]); } // 非上传文件验证签名处理 $file = $request->file('file'); if(empty($file)){ if (env('API.IS_PUBLIC_REQUEST_VERIFY')){ if (ISNOTREQUESTPASS($request->param())){ return api_error_return(['msg'=>'参数错误', 'data'=>null]); } } if (env('API.IS_SIGN_VERIFY')){ if (empty($request->param('sign'))){ return api_error_return(['msg'=>'签名不存在', 'data'=>null]); } $sign = createApiSign($request->param()); if ($request->param('sign') != $sign){ return api_error_return(['msg'=>'签名错误', 'data'=>['aa'=>$sign]]); } if (time() - $request->post('timestamp') > 20){ return api_error_return(['msg'=>'请求失败,稍后再试', 'data'=>null]); } } } $token = trim($request->header('token', '')); if (empty($token)){ return api_error_return(['msg'=>'请登录', 'code'=>401]); }else{ try { /** @var UserAuthServices $service */ $service = app()->make(UserAuthServices::class); $user_info = $service->parseToken($token); $authInfo = $service->parseToken($token)->toArray(); } catch (\Exception $e) { return api_error_return(['msg'=>$e->getMessage(), 'code'=>401]); } $data = $request->param(); // 请求参数 $request->uid = is_null($authInfo) ? 0 : $authInfo['id']; // 用户uid $data['uid'] = $request->uid; $request->data = $data; $request->user = is_null($authInfo) ? null : $authInfo; // 用户信息 $request->user_info = $user_info ?: null; // 用户信息 $request->isLogin = true; } } catch (\Throwable $e) { return api_error_return($e->getMessage()); } return $next($request); } }