使用Homestead时检索客户端凭据授予令牌

问题描述 投票:0回答:1

我正在尝试使用客户端凭据授予令牌来进行机器对机器的身份验证。我有两个单独的网站(API和Web)。

我已经在API上创建了客户端凭据授予客户端。

php artisan passport:client --client

在网络上,我正在尝试使用以下代码从API检索令牌。 PASSWORD_ID / PASSWORD_SECRET存储在我的.env文件中,我直接从数据库中复制了它们,因此它们绝对正确。

$guzzle = new GuzzleHttp();
    $response = $guzzle->get('http://testsite-api.test/oauth/token', [
        'form_params' => [
            'grant_type' => 'client_credentials',
            'client_id' => env('PASSPORT_ID'),
            'client_secret' => env('PASSPORT_SECRET'),
        ],
    ]);

由此,我收到以下错误:

客户端错误:POST http://testsite-api.test/oauth/token导致了401 Unauthorized响应:{“错误”:“ invalid_client”,“ error_description”:“客户端身份验证失败”,“消息”:“客户端身份验证失败”}]

[请注意:我将此代码拖到Mac(使用代客)上,并立即生效。

我已经使用邮递员对其进行了测试,并且使用与Web中使用的相同的ID / SECRET进行了首次工作。

任何想法,我要去哪里错了?我可以肯定这是一个宅基地问题,但是我很难找到解决方法。

php laravel homestead laravel-passport
1个回答
0
投票

问题可能与使用env()功能有关。如果配置用php artisan config:cache缓存,则env()函数始终返回null,您可以通过运行php artisan config:clear进行测试。

此外,您应该重构您的应用程序,env()仅应在config/文件中使用,这样您就可以缓存变量,并且在您的应用程序中只需使用config('app.PASSPORT_SECRET')app是配置文件名放它。

© www.soinside.com 2019 - 2024. All rights reserved.