我想使用laravel护照来保护我的api调用。但是我不想使用连接到用户的access_tokens。
我想创建一个客户端(artisan passport:client
)并使用ID和密码来授权我的请求。我只是不知道它应该如何工作,或者甚至是不可能的。
有人知道如何实现这一目标吗?
我想使用php中的guzzle进行API调用。
答案 0 :(得分:0)
嗯,您可以使用Passport的Client Credentials Grant Tokens。从文档中:
客户凭证授予令牌
客户端凭据授予适用于机器对机器 身份验证。例如,您可以在计划的 通过API执行维护任务的工作。
在您的应用程序可以通过客户端凭据发行令牌之前 授予,您将需要创建一个客户端凭据授予客户端。您 可以使用
--client
的{{1}}选项执行此操作 命令:passport:client
接下来,要使用此授予类型,您需要添加
php artisan passport:client --client
属性的CheckClientCredentials
中间件$routeMiddleware
文件中的内容:app/Http/Kernel.php
然后,将中间件附加到路由:
use Laravel\Passport\Http\Middleware\CheckClientCredentials; protected $routeMiddleware = [ 'client' => CheckClientCredentials::class, ];
要将访问路径限制为特定范围,可以提供一个 附加范围时,以逗号分隔的所需作用域列表
Route::get('/orders', function (Request $request) { ... })->middleware('client');
路由中间件:client
获取令牌
要使用此授予类型检索令牌,请向
Route::get('/orders', function (Request $request) { ... })->middleware('client:check-status,your-scope');
端点:oauth/token