Laravel 5.3: Внедрение паспортов – {"error": "invalid_client", "message": "Ошибка аутентификации клиента}}

Я выполнил точные шаги, упомянутые в Laracast: Что нового в Laravel 5.3: Laravel Passport для реализации api authentication с использованием oauth2 .

Мой файл web.php в проекте client / consumer выглядит так:

 use Illuminate\Http\Request; Route::get('/', function () { $query = http_build_query([ 'client_id' => 2, 'redirect_uri' => 'http://offline.xyz.com/callback', 'response_type' => 'code', 'scope' => '', ]); return redirect ('http://api.xyz.com/oauth/authorize?'.$query); }); Route::get('/callback', function (Request $request){ $http= new GuzzleHttp\Client; $response = $http->post('http://api.xyz.com/oauth/token',[ 'form_params' => [ 'grant_type' => 'authorization_code', 'client_id' => 2 , 'client_secret' => 'tUGYrNeWCGAQt220n88CGoXVu7TRDyZ20fxAlFcL' , 'redirect_uri' => 'http://offline.xyz.com/callback', 'code' => $request->code, ], ]); return json_decode((string) $response->getBody(), true); }); 

Я получаю страницу запроса разрешения, где мне нужно authorize чтобы позволить моему клиенту получить доступ к api. Но, как только я нажму авторизовать, меня перенаправляют на страницу, где отображается следующее сообщение:

 {"error":"invalid_client","message":"Client authentication failed"} 

Как это решить?

Я не устанавливал laravel/passport в автономном проекте. Я что-то упускаю? Я следил и реализовал то, что конкретно было упомянуто в видеоуроке. Должен ли я включать что-то еще, о чем я не знаю? (У меня есть очень базовые знания по oauth2).

Если это помогает, я пытаюсь внедрить автономную систему, которая будет периодически отправлять данные в онлайн-систему, когда есть подключение к Интернету. Поэтому я подумал, что могу создать api и отправить запрос на отправку с информацией, которая будет храниться.

Related of "Laravel 5.3: Внедрение паспортов – {"error": "invalid_client", "message": "Ошибка аутентификации клиента}}"

Проблема заключалась в том, что Redirect URL который я упомянул при создании OAuth Client отличается от того, что мне нужно. После учебника я упомянул http://api.xyz.com/callback который должен был быть http://offline.xyz.com/callback .

Если вы внедрили компоненты vue , используйте параметр « Edit для созданного Oauth Client . Правильно измените URL-адрес переадресации.

Кроме того, убедитесь, что поле id поле redirect в oauth-clients содержат те же значения, что указаны в описании маршрута для /callback в вашем файле routes/web.php .

Это должно исправить ошибку. Однако это может вызвать еще одну ошибку – HttpFoundationFactory не найден.

В composer.json обновите файл в разделе require :

 "symfony/psr-http-message-bridge": "0.2" 

и запустить composer update .

Тебе хорошо идти.

Может быть, вы переустановите свой проект Laravel или переустановите паспорт? Убедитесь, что ваши client_id и client_secret одинаковы во всех местах: файл «.env», таблица базы данных «oauth_clients» и в вашей части кода:

  'client_id' => ...., 'client-secret' => ...... 

В случае, если это другое, тогда скопируйте и вставьте client_id и client_secret из таблицы данных datatbase «oauth_clients» в свой код для соответствующих параметров (client_id, client_secret).