Laravel 护照创建一个 oauth_client 用户 ID 而不是 php artisan passport:client --password

Laravel passport creating a oauth_client with userid not with php artisan passport:client --password

我是新 Laravel 护照,我想创建一个 oauth_client 和 user_id,现在 table oauth_clients 是 user_id 空。

我想通过 user_id 登录并获取 oauth_client 的凭据。

我如何基于 user_id 创建一个 oauth 客户端,所以 不是 php artisan passport:client --password 但有一个端点。

希望有人能帮我实现一下。

您可以使用 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,
]);