我从一个控制器到另一个控制器卷曲。
$ch = curl_init($url . '?' . http_build_query($get));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$headers[] = 'Accept: application/json';
if ($session->get('access_token'))
$headers[] = 'Authorization:' . $session->get('access_token');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
我将$request->headers->all()
转储到该目标控制器中,并始终只获取接受标头。如果我评论接受标题,它仍然会在那里但只是空的。它永远不会获得授权。
这段代码似乎没有遗漏任何东西,所以可能出错了?
除了检查$session->get('access_token')
是否为空(因为您在代码中检查它,这可能是罪魁祸首),我认为您的Authorization标头应该是:
$headers[] = 'Authorization: Basic ' . $session->get('access_token');
(见https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization)