webman_ad/app/middleware/OauthThirdCheck.php

50 lines
2.3 KiB
PHP

<?php
namespace app\middleware;
use app\model\ThirdUser;
//use ReflectionClass;
use Webman\MiddlewareInterface;
use Webman\Http\Response;
use Webman\Http\Request;
class OauthThirdCheck implements MiddlewareInterface
{
public function process(Request $request, callable $handler): Response
{
$requestData = $request->all(); // 获取请求数据
// $customerId = isset($requestData['ad_customer_id']) ? $requestData['ad_customer_id'] : getenv('GOOGLE_ADS_CUSTOMER_ID');
// $uid = $request->jwtClaims['uid'];
$merchant_id = $request->jwtClaims['merchant_id'];
// 查询指定 user_id 的 ThirdUser
// $thirdUserGoogle = ThirdUser::where('user_id', $uid)->where('third_type', 'google')->find();
$thirdUserGoogle = ThirdUser::where('merchant_id', $merchant_id)->where('third_type', 'google')->find();
if ($thirdUserGoogle && $thirdUserGoogle->access_token) {
// 获取 access_token
$request->refresh_token_google = $thirdUserGoogle->access_token;
// 获取关联的广告主数据
$advertiserGoogle = $thirdUserGoogle->advertisers()->find(); // 获取第一个广告主记录
if ($advertiserGoogle) {
// 获取 google_login_customer_id
$request->login_customer_id = $advertiserGoogle->google_login_customer_id;
// dump( $request->access_token,$request->login_customer_id);
}
}
// $thirdUserFacebook = ThirdUser::where('user_id', $uid)->where('third_type', 'facebook')->find();
$thirdUserFacebook = ThirdUser::where('merchant_id', $merchant_id)->where('third_type', 'facebook')->find();
if ($thirdUserFacebook && $thirdUserFacebook->access_token) {
// 获取 access_token
$request->refresh_token_facebook = $thirdUserFacebook->access_token;
}
// $thirdUserTiktok = ThirdUser::where('user_id', $uid)->where('third_type', 'tiktok')->find();
$thirdUserTiktok = ThirdUser::where('merchant_id', $merchant_id)->where('third_type', 'tiktok')->find();
if($thirdUserTiktok && $thirdUserTiktok->access_token){
$request->refresh_token_tiktok = $thirdUserTiktok->access_token;
}
// 不需要登录,请求继续向洋葱芯穿越
return $handler($request);
}
}