我快疯了!我已经在网上搜索了成千上万个StackOverFlow问题,但还没有解决我的问题。
我正在使用Laravel Framework 5.7和Passport 7.0开发API REST。我已经按照文档设置了每个文件,并且能够使用grant_type=password
获取令牌(没有身份验证流程),但是当我尝试访问受auth:api
中间件保护的路由时,我总是得到401响应。
这是我的HTTP请求:
GET /api/usuario/1/grupos HTTP/1.1
Host: localhost:8000
Accept: application/json
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI...
这是我的auth.php保护配置:
'guards' => [
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],
这是我的RouteServiceProvider.php中的mapApiRoutes()
:
protected function mapApiRoutes()
{
Route::prefix('api')
->middleware('auth:api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
}
谢谢。
This is my login request using Postman
This is the 401 when I try to use the token in an api route
编辑:
如果我禁用了'auth:api'中间件,则实际上我可以使用$request->bearerToken()
获取Bearer令牌,因此CSRF令牌现在不再存在问题,因为我可以接收请求。