checkForToken($request); try { if ($this->auth->parseToken()->authenticate()) { // 设置管理的用户 self::setInvite(); self::createHandelLogs($request); return $next($request); } return showJson(102, '认证失败backend'); } catch (TokenExpiredException $exception) { try { Auth::guard(config('permission.guard'))->onceUsingId($this->auth->manager()->getPayloadFactory()->buildClaimsCollection()->toPlainArray()['sub']); } catch (JWTException $exception) { // 验证失败 return showJson(102, 1003); } } // 过期 return showJson(103, 1005); } catch (\Exception $exception) { // 访问令牌为空 return showJson(102, $exception->getMessage()); } } /** * 根据用户的类型设置该用户的管理列表 * @author lyh * @date 2019/4/1 * @description */ private static function setInvite() { $user = Auth::user(); // 代理商管理员可以管理的用户列表 if ($user->is_super == 3) { if ($user->district) { $ids = User::whereDistrict($user->district)->where('level', '<', $user->level)->whereIn('is_super', [0, 3])->pluck('id'); } else if ($user->city) { $ids = User::whereCity($user->city)->where('level', '<', $user->level)->whereIn('is_super', [0, 3])->pluck('id'); } else if ($user->province) { $ids = User::whereProvince($user->province)->where('level', '<', $user->level)->whereIn('is_super', [0, 3])->pluck('id'); } // 保存当前用户可以管理的管理员列表 $admins = User::whereInvitor(Auth::id())->whereIsSuper(3)->pluck('id'); \Cache::put('ids', $ids, 300); \Cache::put('admins', $admins, 300); } } /* * 生成操作日志 * wsl 20190806 * */ private static function createHandelLogs($request){ $user = Auth::user(); $user_id=$user->id; $not_arr=[ 'admins/home/statistics', 'admins/home/withdraw', 'admins/home/upgrade', ]; $name=\DB::table('system_permissions')->where('name','=',$request->path())->orWhere('name','=',\Route::currentRouteName())->value('remark'); $name=empty($name)?'':$name; if('GET' != $request->method() && !in_array($request->path(),$not_arr)){ $data=[ 'operator'=>$user_id, 'path'=>$request->path(), 'ip'=>$request->ip(), 'path_remark'=>$name ]; \DB::table('system_operation_log')->insert($data); } } }