在内部生成 laravel 护照令牌。 401错误未经授权

Posted

技术标签:

【中文标题】在内部生成 laravel 护照令牌。 401错误未经授权【英文标题】:Generate laravel passport tokens internally. 401 error unauthorized 【发布时间】:2019-05-12 13:46:02 【问题描述】:

我正在尝试为护照创建一个不记名令牌,以便我可以在内部使用我的 api 路由。我使用客户端 ID 和客户端密码向 /oauth/token 发送一个发布请求。生成不记名令牌的代码如下所示。

public function generateToken() 
    try 
        $req = Request::create('/oauth/token', 'POST', [
            'grant_type' => 'client_credentials',
            'client_id' => '1',
            'client_secret' => 'POe81tKvmZ0DhBdtwdM7VPoV5tTKobVYzSc9A0RX',
            'scope' => '*',
        ]);
        $res = app()->handle($req);
        return $res;
     catch (Exception $e)
        log::critical('Failed to generate bearer token.');
     catch (error $e) 
        log::critical('Failed to generate bearer token.');
    


但是,当我尝试执行此请求时,我得到了 401 授权。

  #content: ""error":"invalid_client","message":"Client authentication failed"" #version: "1.1"#statusCode: 401 #statusText: "Unauthorized"

有没有办法解决这个问题?

【问题讨论】:

您确定您使用的是与您指定的 client_id 对应的 client_secret? 我已经设法修复它。我发送参数的方式不正确 【参考方案1】:

这对我有用

$client = new client(['verify' => false]);

$response = $client->post($url, [
            'form_params' => [
                'client_id' => 5,
                // The secret generated when you ran: php artisan passport:install
                'client_secret' => 'HxLB5LVi3HhHxYkoHVZinoYUz5Ab3HnbWmiB1KBd',
                'grant_type' => 'client_credentials',
                'scope' => '*',
            ]
        ]);

【讨论】:

以上是关于在内部生成 laravel 护照令牌。 401错误未经授权的主要内容,如果未能解决你的问题,请参考以下文章

laravel 6护照中未经授权的401错误

Laravel 6 护照在错误的凭证上返回 400 Bad request

用于生成的 Laravel 护照令牌

Laravel 护照授权令牌在生成新令牌时过期

如何在默认响应护照中添加状态

401 未经授权使用带有 Laravel Passport 的不记名令牌