authClient = new AuthClient($host); } public function process(Request $request, callable $handler): Response { // 从请求头中获取 JWT token $jwtToken = $request->header('Authorization'); if (!$jwtToken) { return response()->json(['error' => 'Authorization token is missing'], 401); } // 去除 Bearer 前缀 if (strpos($jwtToken, 'Bearer ') === 0) { $jwtToken = substr($jwtToken, 7); } try { // 创建 GRPC 请求 dump($jwtToken); $grpcRequest = new ValidateJwtTokenReq(); $grpcRequest->setJwtToken($jwtToken); // 调用 GRPC 服务 list($response, $status) = $this->authClient->ValidateJwtToken($grpcRequest)->wait(); if ($status->code !== \Grpc\STATUS_OK) { return Json([ 'code' => 1, 'msg' => 'GRPC service error', 'data' => [] ]); } // 检查验证结果 if ($response->getResult() !== JwtVerifyResult::JWT_VERIFY_OK) { return Json([ 'code' => 1, 'msg' => 'Invalid token', 'data' => [] ]); } // 将解析的 claims 数据传递给下层业务逻辑 $claims = $response->getClaims(); dump($claims); return Json([ 'code' => 0, 'msg' => 'test token well', 'data' => [] ]); $request->jwtClaims = $claims; // if ($result['is_valid']) { // dump("JWT 验证成功: " . json_encode($result['claims'])); // } else { // dump("JWT 验证失败: " . $result['error']); // } // if (!$isValid) { // return response()->json(['error' => 'Invalid token'], 401); // } // 如果验证通过,则继续处理请求 return $handler($request); } catch (\Exception $e) { return new Response(500, [], json_encode(['error' => 'Internal server error'])); } } }