Passport - 创建客户端凭据以编程方式授予客户端

Passport - Create client credentials grant client programmatically

文档 Here 建议 php artisan passport:client --client 创建客户端,但我想使用控制器来创建客户端,或者理想情况下,使用 passport 提供的本机 JSON api。 这是可能的还是我必须重写 Passport::client 中的方法?

你可以做到

Artisan::call('passport:client --client');

看看Artisan

老问题,但这是 2021 年的答案,供在 Google 上找到此问题的人使用。

我发现从代码中调用 Artisan 命令并不令人愉快,尤其是@kishore-kadiyala 提到的那样,因为您得到的是打印输出,而不是代码。

相反,您可以使用 Laravel\Passport\ClientRepository class 直接创建客户端:

use Laravel\Passport\ClientRepository;

// ... snip ...

$clients = App::make(ClientRepository::class);

// 1st param is the user_id - none for client credentials
// 2nd param is the client name
// 3rd param is the redirect URI - none for client credentials
$client = $clients->create(null, 'My Client Name', '');

这里$client直接是Laravel\Passport\Client实例。无论如何,这正是 Artisan 命令创建客户端的方式。