如何将Laravel中基于角色的权限与Dingo API集成?

时间:2016-08-23 03:41:50

标签: laravel dingo-api entrust

我目前正在研究Laravel框架和dingo api。有没有办法使用委托给dingo api整合基于角色的权限?

例如,我有一条路线可以获取所有用户列表,但只有管理员可以访问它。

因此,如果用户已通过身份验证,但他不是管理员,则他无法访问此路由。

我尝试将委托的中间件添加到routes.php但是当我在邮递员上尝试时,我收到语法错误。

这是我的routes.php文件:

$api->version('v1', ['middleware' => ['jwt.auth', 'role:admin']], function ($api) {
    $api->get('users', 'App\Http\Controllers\Auth\AuthController@index');
    $api->get('user', 'App\Http\Controllers\Auth\AuthController@show');
});

1 个答案:

答案 0 :(得分:0)

您可以将其分组到不同的部分:

$api->version('v1', ['middleware' => 'jwt.auth'], function ($api) {
//general routes route goes here
//....
    $api->group(['middleware' => 'role:admin'], function($api) {
    //admin routes goes here

        $api->get('users', 'App\Http\Controllers\Auth\AuthController@index');
        $api->get('user', 'App\Http\Controllers\Auth\AuthController@show');
    });
});

这意味着即使用户已通过身份验证,新组中的两条路由也只能由管理员访问。

我希望这有用。