如何使用 laravel 5.2 管理基于访问的角色用户而无需方法检查方法


How to manage access based role-users without method checking ways using laravel 5.2

我的实际项目需要为用户中的不同角色实现 ACL。

目前,我有客户定义的 4 个角色(管理员、部门负责人、秘书和教师),但他想在需要时创建更多角色。

知道这一点,线索是我想知道是否有任何方法可以在不检查系统每种方法的访问权限的情况下控制系统访问。Laravel为我的授权服务提供了服务,但不足以设计我的系统,但我认为这是一种不推荐使用的方式,可以检查每种方法。

的想法是在路由任何请求之前实现一些东西,并根据用户的角色检查用户是否具有访问权限,这样我就不需要在每种方法中检查它,因为 laravel 授权服务、Kodeine 的 laravel-acl 或类似产品为我提供的实际解决方案。

如果有人有提出这个想法的想法,请回答这个问题。

我还想知道这是否会影响系统安全性,以及我如何以及如何处理。

提前谢谢。

如果您只想使用基于角色的访问控制,则很容易创建自己的中间件,您可以在其中检查传递的角色。现在,在路由中,您可以根据用户角色保护路由,例如:

Route::group(['middleware' => 'authorize:admin,secretary'], function() {
   // your route here
});

Laravel文档中有示例角色中间件 此处.