我已经按照此处的文档使用护照设置了 Laravel:
https://laravel.com/docs/5.3/passport .
我在 API 路由中编写了一条路由,并使用 postman 发送请求 http://localhost/laravel_project/public/api/user
但它向我显示了以下错误:
NotFoundHttpException in RouteCollection.php line 161:
我有以下路线(在routes/api.php中):
Route::get('/user', function (Request $request) {
return array(
1 => "John",
2 => "Mary",
3 => "Steven"
);
})->middleware('auth:api');
但是当我删除 route 的 ->middleware('auth:api')
行时,它对我来说工作正常。
我该如何解决这个问题?
另外,如果我不想在某些 route 添加护照身份验证,我该如何执行此操作?
最佳答案
我遇到了同样的问题,似乎您必须将 Accept header 指定为 application/json
,如 Matt Stauffer here 所示
一些进一步的说明:
- 您的默认 Accept header 设置为 text/html,因此 Laravel 会尝试将您重定向到 url
/login
但您可能尚未完成 PHP artisanmake:auth
所以它不会找到登录路由。 - 当您删除中间件后,它就会起作用,因为您不再验证您的请求
- 要对某些路由进行身份验证,只需使用
Route::group
和auth:api
作为中间件对它们进行分组
关于php - 护照身份验证在 Laravel 5.3 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40218529/