我需要保护某些路由,以防止非管理员用户。
例如
http://myapp.com/clients
返回所有客户端,但仅供管理员使用。
然而
http://myapp.com/client/treutel_breitenberg
如果他们已登录,则应该可以使用。
实现这一目标的最佳方式是什么
答案 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
如果您不使用插件,则需要创建中间件才能处理管理员。