Laravel Passport 以编程方式创建客户端

Lui*_*nti 2 client oauth laravel laravel-passport

有没有办法从 Laravel 中的用户界面创建客户端?如果我需要允许用户创建和管理自己的客户端,如何在函数上下文中运行“passport:client”以便动态创建客户端?

我尝试制作 OauthClient 模型并实现生成客户端的表单,但如此创建的客户端在请求中无法识别(它们是 40 个字符的随机字符串)。

小智 5

我强烈建议查看处理命令的源代码(也许还有这个要点

无需创建自己的模型类!您可以使用该类以编程方式创建新客户端Laravel\Passport\ClientRepository。只需选择以下选项之一:

使用依赖注入

您可以将 ClientRepository 类注入到控制器/路由函数中。例如在routes/web.php


Route::get('test', function (\Laravel\Passport\ClientRepository $clientRepository) {
    $clientRepository->create(null, 'MyTest', 'https://example.com/auth/callback');
});

Run Code Online (Sandbox Code Playgroud)

使用 app() 帮助器

事实上也依赖注入,但可以从代码的任何位置调用,您可以使用app()帮助器:

$clientRepository = app('Laravel\Passport\ClientRepository');
$client = $clientRepository->create(null, 'MyTest', 'https://example.com/auth/callback');
Run Code Online (Sandbox Code Playgroud)