container = $container; $this->response = $response; $this->request = $request; $this->JWT = $JWT; } public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $header = $request->getHeaders(); try { if ($header && isset($header['token']) && $header['token'][0] != 'null' && $header['token'][0] != '' && isset($header['token'][0])) { // var_dump("token类型:",$header['token'][0]); $ver = $this->JWT->getClaimsByToken($header['token'][0]); $tokenTime = $this->JWT->getTokenDynamicCacheTime($header['token'][0]); $this->JWT->verifyToken($header['token'][0]); if ($tokenTime == 0) { return $this->response->json( [ 'code' => -1, 'data' => [], 'message' => 'token无效,请重新登录', ] ); } if (isset($header['userurl']) && $header['userurl'] && $header['userurl'][0]) { $origin = $header['userurl'][0]; Context::set("originUrl", $origin); var_dump("来源地址:", $origin); $data = [ 'website_url' => $origin ]; $result = $this->websiteServiceClient->getWebsiteId($data); var_dump($result, '获取网站id--------------------'); if (!isset($result['data']['id']) || !$result['data']['id']) { return $this->response->json( [ 'code' => -1, 'data' => [], 'message' => '网站不存在...', ] ); } Context::set("SiteId", $result['data']['id']); // Context::set("websiteUrl", json_decode($result['data']['website_url'], true)[0] ?? "http://nwpre.bjzxtw.org.cn"); if (in_array($ver['type_id'], [1, 2, 3, 4])) { $userInfo = $this->userController->getUserInfo($ver['uid']); if ($userInfo['code'] == 200 && isset($userInfo['data']) && !empty($userInfo['data']['sszq'])) { $sszq = $userInfo['data']['sszq']; //组id $authData = [ 'id' => $sszq, 'SiteId' => $result['data']['id'] ]; // 调用 LoginController 中的 checkUserAuth 方法 $resultAuth = $this->loginController->checkUserAuth($authData); if (!$resultAuth) { // 如果没有权限,返回错误响应 return $this->response->json( [ 'code' => -1, 'data' => [], 'message' => '没有权限登陆此网站', ] ); } } else { return $this->response->json( [ 'code' => -1, 'data' => [], 'message' => '用户没有群组', ] ); } } } var_dump("中间件:", $ver); Context::set("UserId", $ver['uid']); Context::set("TypeId", $ver['type_id']); if ($ver) { return $handler->handle($request); } } else { return $this->response->json( [ 'code' => -1, 'data' => [], 'message' => 'token无效,请重新登录', ] ); } } catch (\Exception $e) { var_dump("错误消息1:", $e->getMessage(), $e->getCode()); return $this->response->json( [ 'code' => $e->getCode(), 'data' => [], 'message' => $e->getMessage(), ] ); } return false; } }