Как интегрировать разрешение на основе ролей в Laravel с API Dingo?

В настоящее время я изучаю Laravel framework и dingo API. Есть ли способ интегрировать разрешение на основе ролей, используя доверенность API dingo?

Так, например, у меня есть маршрут для получения всего списка пользователей, но только администратор может получить к нему доступ.

Таким образом, если пользователь аутентифицирован, но не является администратором, он не может получить доступ к этому маршруту.

Я попытался добавить промежуточное программное обеспечение entrust в route.php, но когда я попробовал его на почтальоне, я получил синтаксическую ошибку.

вот мой файл route.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');
});

person A Mendoza    schedule 23.08.2016    source источник
comment
эта ссылка поможет вам реализовать роли github.com/karoys/laravel-native-roles -авторизация   -  person Kalidass    schedule 05.07.2017


Ответы (1)


Вы можете сгруппировать это в разные части следующим образом:

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

Это означает, что даже если пользователь аутентифицирован, два маршрута в новой группе могут быть доступны только администраторам.

Я надеюсь, что это полезно.

person Oluwatobi Samuel Omisakin    schedule 22.07.2017