У меня есть собственные маршруты в моем проекте laravel, где я использую Laravel Пакет паспорта:
Код
Route::middleware('client')->prefix('auth')->group(function() {
Route::post('/register', "Auth\UserController@store");
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
});
Route::middleware(['client', 'auth:api'])->group(function() {
Route::apiResources([
'users' => 'UserController',
'posts' => 'PostController'
]);
});
В этом проекте все маршруты должны защищено промежуточным программным обеспечением client
(токенами предоставления учетных данных клиента).
Проблема
Когда пользователь получает Client Credentials Grant Tokens
, запрашивая у laravel приложение что-то вроде этого:
$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',
],
]);
Затем сервер возвращает что-то в ответ:
{
"token_type": "Bearer",
"expires_in": 15724800,
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIzIiwianRpIjoi..."
}
Затем, когда я регистрирую нового пользователя и хочу получить его данные, я должен сделать в своем приложении что-то запрос, где используется Laravel Passport Password Grant Tokens
$response = $http->post('http://your-app.com/oauth/token', [
'form_params' => [
'grant_type' => 'password',
'client_id' => 'client-id',
'client_secret' => 'client-secret',
'username' => 'taylor@laravel.com',
'password' => 'my-password',
'scope' => '',
],
]);
В этом случае тоже laravel верните мне что-нибудь ответ:
{
"token_type": "Bearer",
"expires_in": 15724800,
"access_token": "eyQdfhgtcdfthtrjhy4gfhfghj56.OiIzIiwianRpIjoi..."
}
Вопрос:
Как я могу получить авторизованного пользователя данные с 2 ( токенами ) laravel паспортом Client Credentials
и Password
предоставляют токены путем передачи в заголовок?