如何在不使用 laravel 5.2 的方法检查方式的情况下管理基于访问的角色用户
How to manage access based role-users without method checking ways using laravel 5.2
我的实际项目需要为用户中的不同角色实施 ACL。
目前,我有客户定义的 4 个角色(管理员、部门主管、秘书和教师),但他想在需要时创建更多角色。
知道这个线索是我想知道是否有任何方法可以控制系统访问而不检查我系统的每个方法中的访问。 Laravel 提供我的授权服务,但不足以满足我的系统设计需求,但我认为这是一种不推荐使用的检查每个方法的方式。
我的想法是在发送任何请求之前实现一些东西,并根据用户的角色检查用户是否具有访问权限,这样我就不需要在每个方法中都检查它作为 laravel 的实际解决方案授权服务,laravel-Kodeine 或类似的 acl 提供给我。
如果有人有想法提出这个想法,请回答这个问题。
另外我想知道这是否会影响系统安全以及我如何处理它。
提前致谢。
如果您只想使用基于角色的访问控制,创建自己的中间件非常容易,您可以在其中检查传递的角色。现在在您的路由中,您可以根据用户角色保护路由,例如:
Route::group(['middleware' => 'authorize:admin,secretary'], function() {
// your route here
});
您在 Laravel 文档 here 中有示例角色中间件。
我的实际项目需要为用户中的不同角色实施 ACL。
目前,我有客户定义的 4 个角色(管理员、部门主管、秘书和教师),但他想在需要时创建更多角色。
知道这个线索是我想知道是否有任何方法可以控制系统访问而不检查我系统的每个方法中的访问。 Laravel 提供我的授权服务,但不足以满足我的系统设计需求,但我认为这是一种不推荐使用的检查每个方法的方式。
我的想法是在发送任何请求之前实现一些东西,并根据用户的角色检查用户是否具有访问权限,这样我就不需要在每个方法中都检查它作为 laravel 的实际解决方案授权服务,laravel-Kodeine 或类似的 acl 提供给我。
如果有人有想法提出这个想法,请回答这个问题。
另外我想知道这是否会影响系统安全以及我如何处理它。
提前致谢。
如果您只想使用基于角色的访问控制,创建自己的中间件非常容易,您可以在其中检查传递的角色。现在在您的路由中,您可以根据用户角色保护路由,例如:
Route::group(['middleware' => 'authorize:admin,secretary'], function() {
// your route here
});
您在 Laravel 文档 here 中有示例角色中间件。