filter(['htmlspecialchars', 'strip_tags', 'addslashes', 'trim']); $authInfo = null; $token = trim(ltrim($request->header('Authori-zation'), 'Bearer')); if (!$token) $token = trim(ltrim($request->header('Authorization'), 'Bearer'));//正式版,删除此行,某些服务器无法获取到token调整为 Authori-zation try { $authInfo = UserRepository::parseToken($token); if (!is_null($authInfo)) { $sub_uid = $request->header('UID', 0); if ($authInfo['user']['main_uid'] == 0) { $check = function ($item) use ($authInfo) { return User::getUserInfo($item)['main_uid'] == $authInfo['user']['uid'] || User::getUserInfo($item)['uid'] == $authInfo['user']['uid']; }; } else { $check = function ($item) use ($authInfo) { return (User::getUserInfo($item)['main_uid'] == $authInfo['user']['main_uid']) || User::getUserInfo($item)['uid'] == $authInfo['user']['main_uid']; }; } if ($sub_uid) { if ($check($sub_uid)) { $authInfo['user'] = User::where('uid', $sub_uid)->find(); } $main_user = User::getUserInfo($authInfo['user']['main_uid'] ?: $authInfo['user']['uid']); if ($main_user['real_check'] == 1) { $authInfo['user']['real_check'] = 1; $authInfo['user']['real_name'] = $main_user['real_name']; $authInfo['user']['card_id'] = $main_user['card_id']; } } if (!$authInfo['user']['real_check'] && !in_array($request->action(), ['realNameCheck', 'logout', 'user', 'userinfo'])) { throw new AuthException('请先进行实名认证'); } if (!$authInfo['user']->is_promoter) { $price = StoreOrder::where(['paid' => 1, 'refund_status' => 0, 'uid' => $authInfo['user']['uid']])->sum('pay_price'); $status = is_brokerage_statu($price); } else { $status = false; } User::edit(['is_promoter' => $status ? 1 : $authInfo['user']->is_promoter], $authInfo['user']['uid'], 'uid'); $authInfo['user']->is_promoter = $status ? 1 : $authInfo['user']->is_promoter; } } catch (AuthException $e) { if ($force) return app('json')->make($e->getCode(), $e->getMessage()); } if (!is_null($authInfo)) { Request::macro('user', function () use (&$authInfo) { return $authInfo['user']; }); Request::macro('tokenData', function () use (&$authInfo) { return $authInfo['tokenData']; }); } Request::macro('isLogin', function () use (&$authInfo) { return !is_null($authInfo); }); Request::macro('uid', function () use (&$authInfo) { return is_null($authInfo) ? 0 : $authInfo['user']->uid; }); Request::macro('isReal', function () use (&$authInfo) { return !is_null($authInfo) ? 0 : $authInfo['user']->real_check; }); return $next($request); } }