首页 > 解决方案 > Laravel Passport - 你如何禁止用户生成客户端?

问题描述

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

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

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

标签: phplaravellaravel-5oauth-2.0laravel-passport

解决方案


您可以Passport::routes()在 AuthServiceProvider 中传递一个闭包。看这里

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

像这样的东西:

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

以下是可用的方法:

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

推荐阅读