#laravel #oauth #client #laravel-passport
#laravel #oauth #клиент #laravel-passport
Вопрос:
Есть ли способ создавать клиентов из пользовательского интерфейса в Laravel? Если мне нужно разрешить пользователям создавать свои собственные клиенты и управлять ими, как я могу запустить «passport: client» в контексте функции, чтобы создать клиента «на лету»?
Я попытался создать модель OauthClient и реализовать форму, которая генерирует клиента, но созданные таким образом клиенты не распознаются в запросах (они представляют собой случайные строки из 40 символов).
Ответ №1:
Я настоятельно рекомендую посмотреть на исходный код, в котором обрабатывается команда (и, возможно, эту суть)
Нет необходимости создавать собственный класс модели! Вы можете создавать новых клиентов программно, используя LaravelPassportClientRepository
класс. Просто выберите один из этих вариантов:
Используйте внедрение зависимостей
Вы можете внедрить класс ClientRepository в свои функции контроллера / маршрута. Например, в routes/web.php
:
Route::get('test', function (LaravelPassportClientRepository $clientRepository) {
$clientRepository->create(null, 'MyTest', 'https://example.com/auth/callback');
});
Используйте помощник app()
На самом деле также внедрение зависимостей, но вызываемое из любого места вашего кода, вы можете использовать app()
помощник:
$clientRepository = app('LaravelPassportClientRepository');
$client = $clientRepository->create(null, 'MyTest', 'https://example.com/auth/callback');