Laravel护照使用userid创建一个oauth_client而不是php artisan护照:client --password

时间:2019-12-28 07:30:06

标签: laravel laravel-passport

我是新的Laravel Passport,我想创建一个具有user_id的oauth_client,现在表oauth_clients中的user_id为null。

我要登录并通过user_id获取oauth_clients凭据。

如何基于user_id创建oauth客户端,所以不是使用php artisan passport:client --password,而是使用端点。

我希望有人能帮助我实现目标。

1 个答案:

答案 0 :(得分:1)

您可以使用ClientRepository::class

个人访问客户端

use Laravel\Passport\ClientRepository;

(new ClientRepository)->createPersonalAccessClient($userId, $name, $redirect);

密码授予客户端

use Laravel\Passport\ClientRepository;

(new ClientRepository)->createPasswordGrantClient($userId, $name, $redirect);

或者来自Passport::class

Passport::client()->forceFill([
    'user_id'                => $userId,
    'name'                   => $name,
    'secret'                 => ($confidential || $personalAccess) ? Str::random(40) : null,
    'redirect'               => $redirect,
    'personal_access_client' => $personalAccess,
    'password_client'        => $password,
    'revoked'                => false,
]);