4

我目前正在研究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');
});
4

1 回答 1

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');
    });
});

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

我希望这是有帮助的。

于 2017-07-22T09:57:56.947 回答