我已经按照Laravel文档中编写的说明为Laravel护照安装密码客户端,并使用默认的Laravel 6.0作曲家版本的guzzle等。我已经在本地开发环境和实时服务器上完成了现有项目的安装并作为全新安装,每次我尝试发布到 example.com/oauth/token 路由时,我都会收到一个疯狂的 Guzzle 错误,该错误似乎没有以前的搜索历史互联网。错误是(汇总(:
GuzzleHttpExceptionServerException
/var/task/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:113
"Return value of Zend\Diactoros\normalizeServer() must be of the type array, none returned"
我在所有环境中都运行 php 7.3,但尝试了 php 7.2 和 7.1 并得到了相同的结果。我在本地运行Laravel Valet,从未在任何其他项目上看到过这样的事情。我还在使用 Laravel Vapor 运行一个暂存服务器,我得到了完全相同的错误。我的 guzzle 请求与 Laravel 文档中的 Taylor Otwell 示例几乎完全相同,如下所示:
$http = new GuzzleHttpClient;
$response = $http->post(env('API_TOKEN_URL'), [
'form_params' => [
'grant_type' => 'password',
'client_id' => env('PASSPORT_CLIENT_ID'),
'client_secret' => env('PASSPORT_CLIENT_SECRET'),
'username' => $request['username'],
'password' => $request['password'],
],
]);
return json_decode((string) $response->getBody(), true);
我已经转储了所有变量的数据,以验证用户名,密码,client_id和client_secret是否准确。这似乎根本不是身份验证问题,而是 Guzzle 传递正确服务器标头的一些问题。我不知道如何解决,因为我在互联网上的其他任何地方都找不到这个问题的先前记录。有什么想法吗???
如果有人遇到此问题,只需通过运行将软件包名称:laminas/laminas-diactoros更新到最新版本,例如 2.2.2
作曲家需要层/层叠层
问题来自 normalize_server.遗产.php 它不返回任何内容。