开发者社区> 问答> 正文

users_groups表中使用jwt-auth进行的附加检查

在使用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有任何扩展附加检查的方法?

谢谢!

展开
收起
几许相思几点泪 2019-12-15 20:10:25 702 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载