route; if (!$route || !isset($request->action)) { return $handler($request); } $controllerClass = $request->controller; $action = $request->action; $skipAuth = AnnotationHelper::getMethodAnnotation($controllerClass, $action, AllowAnonymous::class); if ($skipAuth && !$skipAuth->requireToken) { return $handler($request); } try { $jwt = new JwtToken(); $payload = $jwt->verify(); $userId = $payload['id'] ?? null; if (empty($userId)) { throw new UnauthorizedHttpException(); } $jwt->touchCurrentToken(); } catch (\Exception $e) { // 检查是否为SSE请求 if (SseHelper::isSseRequest($request)) { return SseHelper::sendSseErrorViaConnection($request, $e->getMessage()); } return Json::fail($e->getMessage(), [], 401); } return $handler($request); } }