Laravel: Client_Credentials не работает - PullRequest
0 голосов
/ 28 июня 2018

На моем веб-сайте Laravel я должен выполнить задания cron, которые будут извлекать некоторые данные, а затем обновлять мою базу данных. Из документов Laravel я подумал об аутентификации между компьютерами из Laravel Passport.

Так что я прыгнул в это, установка и так далее. https://laravel.com/docs/5.6/passport#client-credentials-grant-tokens

Я следовал за каждым шагом из документов, и из примера, который я нашел в Интернете, я всегда получал следующее сообщение

{
    "message": "Unauthenticated."
}

Я добавил промежуточное ПО client_credentials в свой Kernel.php

protected $routeMiddleware = [
    'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    ...
    'authAdmin' => \App\Http\Middleware\AuthAdmin::class,
    'client' => \Laravel\Passport\Http\Middleware\CheckClientCredentials::class,
];

Затем для основ я создал ApiTestController с методами тестирования, которые будут запускаться для моего маршрута.

Я добавил в мои маршруты api.php следующие строки:

/*
  Public API Routes
*/
Route::group(['prefix' => 'v1'], function() {
  ... 
  Route::get('/test', 'ApiTestController@test')->middleware('client');
});

В основном мой метод просто возвращает "это работает".

Я создал клиент для паспорта с помощью команды passport:client artisan, а затем использовал его через почтальона для получения моего токена на предъявителя.

Но это не работает :(

Кто-то может мне помочь?

1 Ответ

0 голосов
/ 08 января 2019

Я понимаю, что этот ответ очень поздно, но я столкнулся с той же проблемой в Passport 5.7.

Чтобы исправить эту проблему, мне пришлось добавить приведенный ниже код в мой .htaccess. Это потому, что я тестировал в почтальоне, используя https, а не http, однако http вернул бы не прошедший проверку подлинности.

После добавления кода вы сможете проверить свои http api с помощью http url в почтальоне.

Может быть, это кому-нибудь поможет.

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...