Маршруты Laravel api не проходят аутентификацию - PullRequest
0 голосов
/ 18 мая 2018

В моей среде разработчика установлен паспорт Laravel. Я заметил, что независимо от того, вошел я в систему или нет, мои маршруты API работают. Пример одного из моих маршрутов:

Route::get('/users', function () {
    return factory('App\User', 10)->make();
});

Разве он не должен автоматически проходить проверку подлинности с помощью промежуточного программного обеспечения API, поскольку он находится в маршрутах API?

Ответы [ 4 ]

0 голосов
/ 18 мая 2018

Вы должны попробовать это:

Route::group(['middleware' => 'auth:api'], function() {
    Route::get('/users', function () {
       return factory('App\User', 10)->make();
    });

});
0 голосов
/ 18 мая 2018

Для использования аутентифицированного вы должны изменить свой маршрут следующим образом

Route::get('/users', function () {
    return factory('App\User', 10)->make();
})->middleware('auth');

Более того, пожалуйста, измените файл config / auth.php, если вы не использовали класс пользователя по умолчанию

'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\{your User class name}::class,
        ],
0 голосов
/ 18 мая 2018

Вам может понадобиться добавить привязки в /app/Http/Kernel.php https://laravel.com/docs/5.6/passport#via-middleware

Пример:

protected $middlewareGroups = [
    'web' => [
      ...
    ],
    'api' => [
        'throttle:60,1',
        'bindings',
        'auth:api',
    ],
];

и области действия, если вы хотите использовать область действия токена:

'scopes' => \Laravel\Passport\Http\Middleware\CheckScopes::class,
'scope' => \Laravel\Passport\Http\Middleware\CheckForAnyScope::class,

Полный пример файла:

https://github.com/jeremykenedy/laravel-passport/blob/master/app/Http/Kernel.php

0 голосов
/ 18 мая 2018

Но для защиты ваших маршрутов не нужно использовать промежуточное ПО, заявленное после регистрации маршрута?

https://laravel.com/docs/5.5/passport#protecting-routes

т.е:

Route::get('/users', function () {
return factory('App\User', 10)->make()})->middleware('auth:api');
...