Laravel Паспорт: защита маршрутов с помощью учетных данных клиента и токенов предоставления пароля - PullRequest
0 голосов
/ 10 января 2020

У меня есть собственные маршруты в моем проекте 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 предоставляют токены путем передачи в заголовок?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...