Laravel保护非管理员用户的路由

时间:2017-07-11 12:35:45

标签: authentication laravel-5

我需要保护某些路由,以防止非管理员用户。

例如

http://myapp.com/clients

返回所有客户端,但仅供管理员使用。

然而

 http://myapp.com/client/treutel_breitenberg

如果他们已登录,则应该可以使用。

实现这一目标的最佳方式是什么

1 个答案:

答案 0 :(得分:1)

您需要角色和中间件,并且有很多方法可以做到这一点。首先,您需要创建一个管理员角色,因此您的某些路线仅适用于具有管理员角色的人员。为此,您可以按照这个laracasts教程:https://laracasts.com/series/whats-new-in-laravel-5-1/episodes/16

您还可以使用插件来管理角色,例如Zizaco的Entrust,它的内置产品,经过大量用户测试并且易于使用:https://github.com/Zizaco/entrust

接下来,要回答您关于路线的问题,您可以这样继续:

Route::group(['middleware' => ['admin']], function () {

    Route::group(['prefix' => 'admin'], function () {
      Route::get('/your-path', 'YourController@yourMethod')->name('yourRouteName');

    }
}

这两个群组中的任何路线都需要以管理员身份进行身份验证,并且会返回“管理员”状态。您的路线中的前缀,如下所示:www.yourwebsite.com/admin/your-path

如果您不使用插件,则需要创建中间件才能处理管理员。