我有一个休息请求,我为PHP使用curl,但是我需要获取标头中的响应JWT来发出由JWT签名的新请求,而无需重新登录。每当我发出请求时,API都会返回一个新的JWT来执行另一个JWT,但我不知道如何从curl中获取它,有人知道如何做吗?
答案 0 :(得分:0)
我需要在数组中启用CURLOPT_HEADER => true
答案 1 :(得分:0)
您必须知道标题元素的名称, 该函数返回assoc。数组,您只需写出JWT响应标头的名称。
...
$response = curl_exec($ch);
$headers = get_headers_from_curl_response($response);
function get_headers_from_curl_response($response)
{
$headers = array();
$header_text = substr($response, 0, strpos($response, "\r\n\r\n"));
foreach (explode("\r\n", $header_text) as $i => $line)
if ($i === 0)
$headers['http_code'] = $line;
else
{
list ($key, $value) = explode(': ', $line);
$headers[$key] = $value;
}
return $headers;
}
此函数根据CURL响应生成数组。
最终变量将是这个
$myJWT = $headers['CUSTOM_HEADER_NAME_OF_JWT'];