1

我创建了一个带有护照的 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 的其他应用程序中使用的链接
4

2 回答 2

3

这个要求似乎是正确的。检查您是否有正确的密钥和客户端。之后,在 DB 中检查 client_secret 的新值。

php artisan passport:keys

php artisan passport:client --password
于 2020-01-18T10:22:31.267 回答
0

您的客户端 ID 和/或客户端密码不正确,因为错误是“invalid_client”。

于 2020-05-08T16:29:48.787 回答