【发布时间】:2018-09-01 21:19:19
【问题描述】:
这一天我找到了很多教程。而且我的设置与那里的所有基本教程完全相同。
目前,我可以访问http://localhost/oauth/token,并成功将令牌返回给我。
之后,我正在使用 ARC (Advanced Rest Client) 进行调用我自己的 api 的测试。
我已经传递了诸如
之类的标题Authorization: Bearer the_token_here
accept: application/json
从那个标头,我只想访问 laravel /user 提供的默认 API。
但是,我总是收到{ "message": "Unauthenticated." }的回复
我可以按照教程进行登录,但我无法通过端点details 获取数据。它返回{ "message": "Unauthenticated." }的响应
我的api.php路线
Route::group(['prefix' => 'v1', 'middleware' => 'auth:api'], function(){
Route::get('/user', function( Request $request ){
return $request->user();
});
});
顺便说一句,laravel.log 中没有错误消息,我已设置为调试模式
更新感谢 Mayank 指出的评论
League\\OAuth2\\Server\\Exception\\OAuthServerException: The resource owner or authorization server denied the request. in /.../vendor/league/oauth2-server/src/Exception/OAuthServerException.php:173
Stack trace:
#0 /.../vendor/league/oauth2-server/src/AuthorizationValidators/BearerTokenValidator.php(59): League\\OAuth2\\Server\\Exception\\OAuthServerException::accessDenied('Missing "Author...')
#1 /.../vendor/league/oauth2-server/src/ResourceServer.php(82): League\\OAuth2\\Server\\AuthorizationValidators\\BearerTokenValidator->validateAuthorization(Object(Zend\\Diactoros\\ServerRequest))
#2 /.../vendor/laravel/passport/src/Http/Middleware/CheckClientCredentials.php(46): League\\OAuth2\\Server\\ResourceServer->validateAuthenticatedRequest(Object(Zend\\Diactoros\\ServerRequest))
【问题讨论】:
-
路由 /user 中分配了哪些中间件??
-
参考更新的 'auth:api' @MayankMajithya
-
路由必须在登录后使用..登录??
-
请在 kernal.php 中注册这个中间件,然后使用它 'client' => \Laravel\Passport\Http\Middleware\CheckClientCredentials::class,
-
对你的路由使用“客户端”中间件,它可能会起作用
标签: php laravel laravel-passport