gpt4 book ai didi

php - 拉维尔 5.3 : Passport Implementation - {"error" :"invalid_client" ,"message" :"Client authentication failed"}

转载 作者:可可西里 更新时间:2023-11-01 13:23:56 32 4
gpt4 key购买 nike

我遵循了 Laracast : What's New in Laravel 5.3: Laravel Passport 中提到的确切步骤使用 oauth2 实现 api 身份验证

我在客户端/消费者项目中的 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);
});

我正在获取权限请求页面,我需要在其中授权 以允许我的客户端访问该 api。但是,一旦我点击授权,我就会被重定向到显示以下消息的页面:

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

如何解决?

我没有在离线项目中安装laravel/passport。我错过了什么吗?我已经遵循并实现了视频教程中提到的内容。我是否必须包含其他我不知道的内容? (我对 oauth2 有非常基本的了解)。

如果有帮助,我正在尝试实现一个离线系统,该系统会在有互联网连接时定期将数据发送到在线系统。所以我想我可以构建一个 api 并发送包含要存储的信息的 post 请求。

最佳答案

问题是我在创建 OAuth Client 时提到的 Redirect URL 与我需要的不同。在教程之后,我提到了http://api.xyz.com/callback应该http://offline.xyz.com/callback

如果您已经实现了 vue 组件,请为创建的 Oauth Client 使用 Edit 选项。适本地更改重定向 URL。

此外,确保 oauth-clients 表中的 id 字段和 redirect 字段包含与路由中提到的相同的值routes/web.php 文件中 /callback 的描述。

这应该可以修复错误。但是,它可能会引发另一个错误 - HttpFoundationFactory not found。

composer.json 中,在 require 部分更新文件:

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

并运行 composer update

你现在可以走了。

关于php - 拉维尔 5.3 : Passport Implementation - {"error" :"invalid_client" ,"message" :"Client authentication failed"},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39315803/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com