Laravel Passport API 调用代码参数 null

Posted

技术标签:

【中文标题】Laravel Passport API 调用代码参数 null【英文标题】:Laravel Passport API call code parameter null 【发布时间】:2017-05-05 13:06:06 【问题描述】:

我正在尝试使用 Laravel 客户端调用 Laravel API。

代码如下:

Route::get('/callback', function (Request $request) 
    $http = new GuzzleHttp\Client;

    $response = $http->post('http://galaxy.dev/oauth/token', [
        'form_params' => [
            'grant_type' => 'authorization_code',
            'client_id' => '3',
            'client_secret' => 'rrhaEv0B6NAFLyMFqvZrY87gkquFF2UwhAHPtd8L',
            'redirect_uri' => 'http://galaxy-game.dev/callback',
            'code' => $request->code,
        ],
    ]);
    return json_decode((string) $response->getBody(), true);
);

我从 API 收到此响应:

客户端错误:POST http://galaxy.dev/oauth/token 导致 400 错误请求响应:"error":"invalid_request","message":"The 请求缺少必需参数,包含无效参数 值,(截断...)

我在 API 错误日志中注意到:

Client->request('post', 'http://galaxy.dev/oauth/token', 数组('form_params' => 数组('grant_type' => 'authorization_code', 'client_id' => '3', 'client_secret' => 'rrhaEv0B6NAFLyMFqvZrY87gkquFF2UwhAHPtd8L', 'redirect_uri' => 'http://galaxy-game.dev/callback', '代码' => null), '同步' => true)) 在 Client.php 第 87 行

上面写着

$request->code = null

有人知道为什么会这样吗?这似乎是它失败的原因。我完全遵循了 Laravel 文档。任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

您好,我通过将代码值留空来解决此问题,如下所示:

'code' => '',

由于$request->codenull,这可能会导致该问题。

【讨论】:

以上是关于Laravel Passport API 调用代码参数 null的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 通过 Passport 实现 API 请求认证:隐式授权令牌

Laravel Passport:auth:api 的行为类似于 auth:web

Laravel Passport 通过网络问题使用自己的 API

如何使用 Laravel Passport 验证令牌?

Laravel Passport 不支持_grant_type

404 - 未找到存在 Laravel 8 的 Passport Api 路由