Laravel 5.3: Реализация паспорта — {«error»: «invalid_client», «message»: «Ошибка аутентификации клиента»}

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

мой web.php Файл в проекте клиент / потребитель выглядит так:

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 и отправить post запрос с информацией для хранения.

4

Решение

Проблема была в 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,

Тебе хорошо идти сейчас.

1

Другие решения

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

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

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

0

По вопросам рекламы [email protected]