首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检索客户端凭据授予令牌时使用Homestead

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

Stack Overflow用户
提问于 2020-06-12 13:58:52
回答 1查看 938关注 0票数 6

我试图使用客户端凭据授予令牌进行机器对机器的身份验证。我有两个独立的站点(API和Web)。

我在API上创建了一个客户端凭据授予客户端。

代码语言:javascript
运行
复制
php artisan passport:client --client

在Web上,我试图使用下面的代码从API中检索令牌。密码_ID/密码_ .env存储在我的文件中,我直接从数据库复制它们,因此它们绝对正确。

代码语言:javascript
运行
复制
$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”:“invalid_client”,“error_description”:“客户身份验证失败”,“消息”:“客户身份验证失败”}

请注意:我把这段代码拉到了我的Mac上(它使用的是贴现器),它马上就起作用了。

我用过邮递员来测试它,它第一次工作了,使用了Web中使用的相同的ID/秘密。

知道我哪里出问题了吗?我很确定这是个宅基地问题,但我很难找到解决办法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-14 20:09:15

问题可能与使用env()函数有关。如果配置是用php artisan config:cache缓存的-- env()函数总是返回null,那么您可以通过运行php artisan config:clear并再次发送请求来测试它是否正常工作。

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

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62345782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档