没有oAuth的Laravel Passport

时间:2019-10-14 14:40:14

标签: laravel laravel-passport laravel-6

我想使用laravel护照来保护我的api调用。但是我不想使用连接到用户的access_tokens。

我想创建一个客户端(artisan passport:client)并使用ID和密码来授权我的请求。我只是不知道它应该如何工作,或者甚至是不可能的。 有人知道如何实现这一目标吗?

我想使用php中的guzzle进行API调用。

1 个答案:

答案 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