Laravel 9控制器中如何携带Cookie发送POST API请求?
我正在开发Omada Controller(外部门户服务器)相关功能,目标是实现通过EAP注册用户并授权设备使用WiFi。Postman测试请求正常,但登录后需要携带Cookie授权设备,我编写的Laravel代码无法存储或发送Cookie。
Laravel代码实现
public function AuthFree(Request $req) { $inputs = $req->all(); //IP Address of Controller $endPoint = 'https://CONTROLLER_API:PORT/CONTROLLER_ID/api/v2/hotspot/extPortal/auth'; $operatorData = self::getCSRFToken(); $csrfToken = $operatorData->object()->result->token; $cookies = $operatorData->cookies()->getCookieByName('TPEAP_SESSIONID')->toArray();//->getValue(); $deviceBody = [ 'clientMac' => $inputs['clientMac'], 'apMac' => $inputs['apMac'], 'ssidName' => $inputs['ssidName'], 'radioId' => $inputs['radioId'], 'time' => 1859960742, 'authType' => 4, ]; $authDevice = Http::withCookies($cookies, $endPoint) ->timeout(30)->withOptions([ 'verify' => false, ]) ->withHeaders([ 'Content-Type' => 'application/json', 'Accept' => 'application/json', 'Csrf-Token' => $csrfToken, ]) ->post($endPoint, $deviceBody); dd($authDevice); } //Login operator. public function getCSRFToken() { $authOperator = Http::accept('application/json')->timeout(15)->withOptions([ 'verify' => false, ]) ->post('https://IP:PORT/ID/api/v2/hotspot/login', [ 'name' => 'USERNAME', 'password' => 'PASSWORD', ]); return $authOperator; }
尝试的Curl代码
$ch = curl_init(); // Set return to a value, not return to page curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Set up cookies. curl_setopt($ch, CURLOPT_COOKIEJAR, request()->cookie('TPEAP_SESSIONID')); curl_setopt($ch, CURLOPT_COOKIEFILE, request()->cookie('TPEAP_SESSIONID')); // Allow Self Signed Certs curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); // API Call curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($authInfo)); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $res = curl_exec($ch); $resObj = json_decode($res); return $resObj;
目前getCSRFToken函数可正常获取token,但authDevice请求失败,核心问题是无法正确携带Header和Cookie。想知道代码存在哪些问题,以及如何正确保存并在请求中携带Cookie。
内容的提问来源于stack exchange,提问作者MinorDestroyer
相关产品推荐
相关产品推荐

