问题描述
是否可以通过Laravel中的用户界面创建客户端?如果需要允许用户创建和管理自己的客户端,如何在函数上下文中运行“ passport:client”以动态创建客户端?
我尝试制作一个OauthClient模型并实现一个生成客户端的表单,但是在请求中无法识别这样创建的客户端(它们是40个字符的随机字符串)。
解决方法
我强烈建议查看处理命令的 source code(可能还有 this gist)
无需创建自己的模型类!您可以使用 Laravel\Passport\ClientRepository
类以编程方式创建新客户端。只需选择以下选项之一:
使用依赖注入
您可以将 ClientRepository 类注入您的控制器/路由功能。例如。在routes/web.php
:
Route::get('test',function (\Laravel\Passport\ClientRepository $clientRepository) {
$clientRepository->create(null,'MyTest','https://example.com/auth/callback');
});
使用 app() 助手
实际上也是依赖注入,但可以从代码的任何位置调用,您可以使用 app()
助手:
$clientRepository = app('Laravel\Passport\ClientRepository');
$client = $clientRepository->create(null,'https://example.com/auth/callback');