check()) { $action = $request->route()->getCompiled()->getStaticPrefix(); $user = Auth::guard('sanctum')->user(); $user_id = $user->id; $uriArr = AdminMenuService::auth($user_id); // if ($this->passedOrNot($action, $uriArr)) { // return (new ApiResponseService())->error( // __('middleware.check.user_auth'), // 400 // ); // } } return $next($request); } /** * @param $action * @param $uriArr * @return bool */ protected function passedOrNot($action, $uriArr): bool { $search = '/api/admin/'; $action = str_replace($search, '', $action); if (in_array($action, $uriArr)) { return false; } $methodArr = ['create', 'edit']; $actionArr = explode('/', trim($action)); $method = $actionArr[1] ?? ''; $newAction = $actionArr[0] ?? ''; // 特殊 if (in_array($newAction, ['logout', 'me', 'menu'])) { return false; } // 特殊 if (in_array($method, ['rule', 'import'])) { return false; } if ($method == $methodArr[0]) { $newAction .= '/store'; } elseif($method == $methodArr[1]) { $newAction .= '/update'; } if (in_array($newAction, $uriArr)) { return false; } return true; } }