在使用tymon / jwt-auth 1.0.0的Laravel 5.8应用程序中,我有users_groups表,并且需要登录的用户才能使某个控制器检查是否在某个组内。为此,在route / api.php中,我有:
Route::group(['middleware' => 'jwt.auth', 'prefix' => 'manager', 'as' => 'manager.'], function ($router) {
Route::get('users_of_event_selection/{event_id}', 'API\ManagerController@users_of_event_selection');
Route::post('add_user_to_event', 'API\ManagerController@add_user_to_event');
...
I app/Http/Controllers/API/ManagerController.php I added checks:
public function __construct()
{
$this->middleware('jwt.auth', ['except' => []]);
$request = request();
$this->requestData = $request->all();
$loggedUser= Auth::guard('api')->user();
$userGroupsCount = UsersGroups
::getByUserId($loggedUser->id)
->getByGroupId([ACCESS_ROLE_ADMIN,ACCESS_ROLE_MANAGER])
->count();
if($userGroupsCount == 0) {
return response()->json(['error' => 'Unauthorized'], 401);
}
}
但是上面的代码无法按我预期的方式工作,并且控件的方法返回有效数据。我想我可以做一个小函数,并在任何控件的方法上调用它,但是如果这是个好方法呢?如果jwt-auth有任何扩展附加检查的方法?
谢谢!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。