Токены предоставления учетных данных клиента
Предоставление учетных данных клиента подходит для проверки подлинности между компьютерами. Например, вы можете использовать этот грант в запланированном задании, выполняющем задачи обслуживания через API.
Прежде чем ваше приложение сможет выдавать токены с помощью клиентского предоставления учетных данных, вам нужно будет создать клиентское клиентское предоставление полномочий. Вы можете сделать это, используя параметр --client
команды 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
:
$guzzle = new GuzzleHttp\Client;
$response = $guzzle->post('http://your-app.com/oauth/token', [
'form_params' => [
'grant_type' => 'client_credentials',
'client_id' => 'client-id',
'client_secret' => 'client-secret',
'scope' => 'your-scope',
],
]);
return json_decode((string) $response->getBody(), true)['access_token'];