all(); // 获取请求数据 $customerId = isset($requestData['ad_customer_id']) ? $requestData['ad_customer_id'] : getenv('GOOGLE_ADS_CUSTOMER_ID'); // 通过 advertiser_id 查询 ThirdUserAdvertiser,联表查询 ThirdUser 数据 $userAdvertiser = ThirdUserAdvertiser::with('googleUser') // 联表查询 user 关联 ->where('advertiser_id', $customerId) // 根据 advertiser_id 查询 ->find(); // 获取第一个结果 // 如果找到广告主数据 if ($userAdvertiser && $userAdvertiser->googleUser) { // 获取关联用户的 access_token $accessToken = $userAdvertiser->googleUser->access_token; if (empty($accessToken)) { return Json([ 'code' => 300, 'msg' => 'AccessToken 为空或过期', 'data' => [] ]); } $request->login_customer_id = $customerId; $request->access_token = $accessToken; } else { return Json([ 'code' => 300, 'msg' => '未找到该广告主或关联的用户', 'data' => [] ]); } // if (session('user')) { // // 已经登录,请求继续向洋葱芯穿越 // return $handler($request); // } // 通过反射获取控制器哪些方法不需要登录 // $controller = new ReflectionClass($request->controller); // $noNeedLogin = $controller->getDefaultProperties()['noNeedLogin'] ?? []; // 访问的方法需要登录 // if (!in_array($request->action, $noNeedLogin)) { // // 拦截请求,返回一个重定向响应,请求停止向洋葱芯穿越 // return redirect('/user/login'); // } // 不需要登录,请求继续向洋葱芯穿越 return $handler($request); } }