php - 如何在测试中使用 Laravel Passport 生成的客户端 ID 和客户端密码?
问题描述
我在 TDD 下工作,我正在使用带有 Laravel Passport 的 Password Grant Tokens 进行测试以获取令牌,我已经手动进行了测试(发送带有客户端 ID、客户端密码、用户和密码的 curl)到端点,它的工作原理!它返回给我一个令牌,我正在使用由php artisan passport:install --uuids
命令生成的客户端 ID 和客户端密码(我已经进行了所有先前的配置)
但是现在我想编写测试来生成该令牌,我有以下代码:
public function test_request_token() {
$email = "user@test.com";
$password = "123456";
// Create the user
$this->post("api/register", [
"email" => $email,
"password" => $password,
"password_confirmation" => $password
]);
// Ask for a token
$response = $this->post("oauth/token", [
'grant_type' => 'password',
'client_id' => '92d16637-6c65-42c4-9ba2-b940d8dc3d0b',
'client_secret' => 'Sx20PJJkmED46X2HzvhoLPHeXnoE7sNp6hNqTdBw',
'username' => $email,
'password' => $password,
'scope' => ''
]);
dd($response);
$response->assertStatus(200);
}
但它不起作用,这些凭据(客户端 ID 和客户端密码)是php artisan passport:install --uuids
命令给我的凭据(并且与我用来使用有效的 curl 进行手动测试的凭据相同)
我在dd()
那里放了一个函数来查看发生了什么,并且错误是Client authentication failed
所以我认为测试没有读取 Laravel 生成的凭据,我该如何使用这些凭据?
我试图从POST /oauth/clients
端点获取凭据,但它说它需要用户登录,但我不想创建用户,我的应用程序不允许创建客户端,我的应用程序只需要一个客户端,并且该客户端是由 Laravel Passport 生成的,那么我该怎么做呢?
解决方案
推荐阅读
- javascript - 如何在 ejs 模板中从 mysql 数据库中呈现值
- javascript - 更改按钮的方向
- .net - 如何从 .NET (C#) 程序(在 Linux 下)调用本机(C 或汇编)代码?
- c++ - 为什么访问未初始化数组中的元素会输出奇怪的值?
- php - 致命错误:composer.lock 是为 PHP 7.4 或更高版本创建的,但当前 PHP 版本是 7.1.33
- javascript - 如何更改高图表中图表区域的背景颜色?
- c# - 提供枚举时,C# Web API 中的 POST 方法接收 Null 模型
- python-3.x - 用于文本分析的英语词典转储
- microsoft-graph-api - 尝试对 Microsoft 团队通话进行分析
- javascript - 如何在 Pos odoo 中加载 qty_avaiable