Laravel api路由未被授权

时间:2018-05-18 01:24:13

标签: laravel laravel-5 laravel-passport

我的开发环境中安装了Laravel护照。我注意到无论我是否登录,我的api路线都可以正常工作。我的一条路线的例子是

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

不应该使用api中间件自动验证它,因为它在api路径中?

4 个答案:

答案 0 :(得分:1)

你应该试试这个:

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

});

答案 1 :(得分:0)

但是为了保护你的路线,不需要使用路由注册后声明的中间件吗?

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

即:

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

答案 2 :(得分:0)

要使用经过身份验证的,您应该按照以下方式修改路线

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,
        ],

答案 3 :(得分:0)

您可能需要在/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

相关问题