Laravel Passport - 您如何禁止用户生成客户端?

Laravel Passport - How do you disallow users from generating clients?

Passport 提供了一种方便的方法来注册路由,用户可以通过调用 Passport::routes() 来创建自己的客户端;在 AuthServiceProvider 中。

我不想让我的用户创建客户端,因为我只想使用 php artisan passport:client 命令手动创建客户端,因为我只需要用于内部服务的机器对机器身份验证的通行证。

如何自定义 Passport 的路由以仅公开传递客户端 ID 和机密以获得 access_token 的必要路由?我知道我可以深入研究框架并将自己的路由暴露给一系列 \Laravel\Passport\Http\Controllers\PassportController@action,我只是不知道那是唯一的方式还是首选方式。

您可以在 AuthServiceProvider 中将闭包传递给 Passport::routes()。 参见 here

在闭包中,您可以定义应注册哪些路由。

像这样:

Passport::routes(function ($router) {
    $router->forAuthorization();
    $router->forAccessTokens();
    // etc.
);

Here 是可用的方法:

forAuthorization();
forAccessTokens();
forTransientTokens();
forClients();
forPersonalAccessTokens();