【发布时间】:2020-11-27 09:11:26
【问题描述】:
我目前正在使用 Laravel Passport,我可以通过使用返回 json 的localhost:8000/api/check 验证是否保存了当前令牌:
{"id":"1c080ff73c6592b8e35630ae36f45f5042c04d9a9ed26a7fafc3793c606484b619ed8792be65a658","user_id":1,"client_id":5,"name":"Personal Access Tokens","scopes":["administrator"],...}
但是当我尝试使用 localhost:8000/api/admin 为管理员使用中间件范围时,它返回一个错误
Illuminate\Contracts\Container\BindingResolutionException:目标类 [范围] 不存在。在文件中
这里是 routes/api.php
Route::group(['middleware' => 'auth:api'], function(){
Route::get('check', 'TeamController@check');
Route::group(['middleware' => 'scope:administrator'], function() {
Route::get('admin', 'TeamController@index');
});
});
这是TeamController.php
上的对应函数public function check(Request $request) {
return auth()->user()->token();
}
public function index(Request $request) {
return auth()->user()->token();
}
有人知道我做错了什么吗?
【问题讨论】:
-
听起来好像没有注册别名“范围”的中间件...您是否注册了护照文档谈到的中间件? (
scopes和scope) -
@lagbox 谢谢先生!!你指对了。你可以回答,我会接受的。
-
np,祝你好运,享受 Laravel 的乐趣
标签: php laravel laravel-passport laravel-api