pathinfo(); if(in_array($route, $noNeedRight)){ return $next($request); } else { $jwtData = JWTAuth::auth(); $adminInfo = []; if (!empty($jwtData['admin'])) { $adminInfo = $jwtData['admin']->getValue(); // 超级管理员直接放行 if ($adminInfo) { if ($adminInfo->id == 1) { return $next($request); } // 获取角色拥有的所有路由权限(需在用户模型中实现) $roleRoutes = Role::getRoleMenu($adminInfo->role_id); // 校验权限:当前路由是否在用户允许的路由列表中 if (in_array($route, $roleRoutes)) { return $next($request); } } } return shutdown(lang('您暂无权限'), -1); } } catch (Exception $exception) { return shutdown($errorMsgArr[$exception->getMessage()] ?? $exception->getMessage(), -1); } return $next($request); } }