在使用Laravel Passport 过程中,请求 oauth/token 时遇到如下错误:
{ "error": "invalid_client", "error_description": "Client authentication failed", "message": "Client authentication failed" }
产生这个错误的原因是你的参数配置错误,请仔细检查参数配置与数据库中的设置。
官方文档的示例代码:
$http = new GuzzleHttpClient; $response = $http->post('http://your-app.com/oauth/token', [ 'form_params' => [ 'grant_type' => 'password', 'client_id' => 'client-id', 'client_secret' => 'client-secret', 'username' => 'taylor@laravel.com', 'password' => 'my-password', 'scope' => '', ], ]); return json_decode((string) $response->getBody(), true);
请逐个检查上述 form_params 中的参数名及参数值,仔细对比,这里很容易出错,比如‘grant_type’没配置,那么还会报:Laravel Passport unsupported_grant_type 的错误,如果都对,那么请往下看。
如果你的项目不需要 password 认证,也就是你的 form_params 中没有
'password' => 'my-password',
这一项,那么你的‘grant_type’应该设置为:client_credentials。
声明:本文为原创文章,版权归主机之家测评所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 宝塔面板部署 Laravel 提示:The Process class relies on proc_open, which is not available on your PHP installation.07/06
- ♥ SSL 证书:七大常见错误及解决方法08/13
- ♥ $.post(...).error is not a function 的解决办法07/06
- ♥ 微信小程序开发真机调试请求的网页 404,普通调试或者浏览器直接打开网页正常的解决办法07/07
- ♥ Laravel Passport unsupported_grant_type 的错误解决办法07/07
- ♥ 解决无法访问此网址,网址永久性地移动到新网址的问题(ERR_TUNNEL_CONNECTION_FAILED)09/08