Php 护照验证在laravel 5.3中不起作用

Php 护照验证在laravel 5.3中不起作用,php,laravel,laravel-routing,laravel-5.3,laravel-passport,Php,Laravel,Laravel Routing,Laravel 5.3,Laravel Passport,我已根据以下文件使用passport设置了Laravel: 我已经在API route和send request中编写了一个路由http://localhost/laravel_project/public/api/user使用邮递员,但它会显示以下错误: RouteCollection.php第161行中的NotFoundHttpException: 我有以下路径(在routes/api.php中): 但当我删除路由中的->中间件('auth:api')行时,它对我来说运行良好 我怎样才能解

我已根据以下文件使用passport设置了Laravel:

我已经在API route和send request中编写了一个路由
http://localhost/laravel_project/public/api/user
使用邮递员,但它会显示以下错误:

RouteCollection.php第161行中的NotFoundHttpException:

我有以下路径(在routes/api.php中):

但当我删除路由中的
->中间件('auth:api')
行时,它对我来说运行良好

我怎样才能解决这个问题


另外,请告诉我,如果我不想在我的某些路线中添加passport身份验证,我该怎么做?

在您的
路线/api.php
中,您可以这样做:

Route::group(['middleware' => 'auth:api'], function(){

    Route::get('/user', function (Request $request) {
        return array(
            1 => "John",
            2 => "Mary",
            3 => "Steven"
        );
    });

});
您在此组中定义的所有路由都将具有
auth:api
中间件,因此需要passport身份验证才能访问它

在这个组之外,您可以放置不需要身份验证的api路由


编辑:为了确保路由确实存在于所需的中间件中,请运行
php artisan route:list

我遇到了同样的问题,您似乎必须将Accept头指定为
application/json
,如Matt Stauffer所示

一些进一步的说明:

  • 默认的Accept标头设置为text/html,因此Laravel会尝试将您重定向到url
    /login
    ,但可能您还没有完成PHP artisan
    make:auth
    ,因此它找不到登录路径
  • 当您删除中间件时,它将起作用,因为您不再验证您的请求
  • 要验证某些路由,只需使用
    Route::group
    auth:api
    作为中间件对它们进行分组即可

  • 但我还是得到了错误:在RouteCollection.php第161行中的NotFoundHttpException:@OkFuzzle运行
    php artisan route:list
    时会发生什么?该路由以api和auth:api作为中间件出现在列表中?我在我的项目中使用了Laravel 5.3和passport,它为我工作。当我运行这个命令php artisan route:list时,它向我显示了方法:GET | HEAD,URI:api/user,Atcion:Closure和Middleware:api,auth:api,我正试图通过这个带有头的url在邮递员中点击api。内容类型:application/json我在routes/api.php中只有一个路由,这在上面的问题中提到过,这可能就是问题所在。您能告诉我您是如何发送带有令牌的API请求的吗?@Okman可能是邮递员的问题,而不是您的路线的问题?正如artisan所说,您的路由是存在的,因此您的路由定义似乎没有问题,也许您试图如何访问它。在《邮差》中,当我删除此->中间件('auth:api')时,它对我有用
    Route::group(['middleware' => 'auth:api'], function(){
    
        Route::get('/user', function (Request $request) {
            return array(
                1 => "John",
                2 => "Mary",
                3 => "Steven"
            );
        });
    
    });