401 Unauthorized при создании токенов предоставления пароля с помощью паспорта laravel

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

GuzzleHttp\Exception\ClientException
Client error: `POST http://127.0.0.1:8000/oauth/token` resulted in a `401 Unauthorized` response: {"error":"invalid_client","error_description":"Client authentication failed","message":"Client authentication failed"}

мой маршрут

Route::get('/get_token_by_password', function (Request $request) {

    $http = new GuzzleHttp\Client;

    $response = $http->post('http://192.168.0.103:8000/oauth/token', [
    'form_params' => [
        'grant_type' => 'password',
        'client_id' => 13,
        'client_secret' => 'f37AwQGsVMiZDVu786KiRdbpn4MXYSBWCvqNcqiC',
        'username' => 'developer@ymail.com',
        'password' => '123456789',
        'scope' => '*',
    ],
]);

return json_decode((string) $response->getBody(), true);

})->name('get_token_by_password');
  1. Что я делаю не так?

  2. Кроме того, как мне получить жетон с помощью почтальона?

  3. Как мне получить ссылку, которая будет использоваться в других приложениях, которые хотят использовать мой API

2 ответа

Запрос кажется правильным. Проверьте правильность ключей и клиента. После этого проверьте в БД новое значение client_secret.

php artisan passport:keys

php artisan passport:client --password

Ваш идентификатор клиента и / или секрет клиента неверны, так как ошибка "invalid_client".

Другие вопросы по тегам