Laravel 6 с laravel паспортом, странная ошибка с жадностью - PullRequest
1 голос
/ 08 января 2020

Я следовал инструкциям по установке клиента пароля для Laravel паспорта точно так, как написано в Laravel документах и ​​со стандартными Laravel 6.0 composer версиями guzzle, et c. Я выполнил установку в существующем проекте и как чистую установку, как в локальной среде разработки, так и на живом сервере, и каждый раз, когда я пытаюсь опубликовать сообщение по маршруту example.com/oauth/token, меня встречает сумасшедшая ошибка Guzzle похоже, у него нет предыдущей истории поиска по inte rnet. Ошибка (суммирована):

GuzzleHttp\Exception\ServerException

/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, и я получаю точно такую ​​же ошибку. Мой жадный запрос почти такой же, как пример Тейлора Отвелла в Laravel документах, и выглядит так:

        $http = new \GuzzleHttp\Client;

        $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, передающие правильные заголовки сервера. Я понятия не имею, как это исправить, так как нет предыдущих записей об этой проблеме, которые я мог бы найти где-нибудь еще на inte rnet. Есть идеи ???

1 Ответ

4 голосов
/ 16 января 2020

если кто-то столкнулся с этой проблемой, просто обновите имя пакета: laminas / laminas-diactoros до последней версии, такой как 2.2.2 , запустив

composer требуют laminas / laminas-diactoros

проблема связана с normalize_server.legacy. php она ничего не возвращает.

...