Маршрут не найден после добавления промежуточного программного обеспечения «auth: api» Laravel 5.3

Я пытаюсь сделать вызов api из одного из моих проектов laravel другому, используя новую функцию oauth2 в laravel 5.3.

У меня есть этот маршрут в файле маршрута api.php моего нового проекта laravel, который я хочу вызвать из старого:

Route::get('/hello', function() { return 'hello'; })->middleware('auth:api'); 

Без промежуточного программного обеспечения я могу назвать его без проблем, с промежуточным программным обеспечением, он выдает ошибку 404, не найденную.

Вот код, который извлекает токен доступа, а затем вызывает вызов api:

 $http = new GuzzleHttp\Client; $response = $http->post('http://my-oauth-project.com/oauth/token', [ 'form_params' => [ 'grant_type' => 'client_credentials', 'client_id' => 'client_id', 'client_secret' => 'client_secret', ], ]); $token = json_decode($response->getBody(), true)['access_token']; $response = $http->get('http://my-oauth-project.com/api/hello', [ 'headers' => [ 'Accept' => 'application/json', 'Authorization' => 'Bearer '.$token, ], ]); return $response->getBody(); 

Возвращаемая ошибка:

 [2016-10-14 09:46:14] local.ERROR: exception 'GuzzleHttp\Exception\ClientException' with message 'Client error: `GET http://my-oauth-project.com/api/hello` resulted in a `404 Not Found` response: <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta name="robots" content="noindex,nofollow (truncated...) 

Средство «auth: api» промежуточного программного обеспечения автоматически перенаправляет запрос на страницу входа (которая в этом случае не существует, следовательно, ошибка 404).

Учетные данные для учетных данных клиента не требуют входа в систему. Документация для него еще не опубликована, но промежуточное ПО существует .

Чтобы использовать его, создайте новое промежуточное программное обеспечение под переменной $routeMiddleware в app\Http\Kernel.php например:

 protected $routeMiddleware = [ 'client_credentials' => \Laravel\Passport\Http\Middleware\CheckClientCredentials::class, ]; 

Затем добавьте это промежуточное программное обеспечение в конец маршрута:

 Route::get('/hello', function() { return 'hello'; })->middleware('client_credentials'); 

Это то, что сработало для меня.