Laravel 5.5中的用户角色

时间:2017-09-14 08:00:24

标签: php laravel laravel-5 laravel-5.5

在Laravel 5.5中添加用户角色的最有效方法是什么?

我遇到了几种方法,即

  • 管理中间件
  • user_roles的数据透视表

我已经在我的应用程序中尝试并实现了这两种方法,但是通过记住我的应用程序关于它们如何有效的可扩展性来提出这个问题。

4 个答案:

答案 0 :(得分:0)

如果需要,可以在角色表上添加权限,创建新权限表以定义用户权限。

例如:

Without permission table: Based on cartalyst sentinel
User Table -> name, email, password etc
Role Table -> name, slug, permissions
Users_role -> user_id, role_id

With permission table: Based in Zizaco entrust
User Table -> name, email, password etc
Role Table -> name, slug, permissions
Users_role -> user_id, role_id
Permission table -> name, slug, description
role_permission -> permission_id, role_id

答案 1 :(得分:0)

你为什么要尝试重新发明轮子? Mayb,你可以使用一个包。 spatie/laravel-permission包是我特别喜欢的。

快速搜索之后,我还在laracasts上找到了这个discussion,其他一些选项。

答案 2 :(得分:0)

我说你需要同时拥有两个:用于检查每个请求的访问权限的中间件&用于存储权限的权限表(& pivot)。

对于一个工作示例,您可以:

免责声明:我是这些套餐的撰稿人。

在上面的示例中,简而言之,权限与角色相关联,可以将角色分配给所有者,并且所有者拥有用户。

答案 3 :(得分:0)

对我看来,你需要在你的问题中提到的两件事。您应该有一个Roles表,用于定义用户在您的应用程序中可以拥有的所有角色。 用于将用户与特定角色关联的user_roles数据透视表 还有一个中间件,您将在授权用户访问该功能之前检查角色。

此链接中提供了Detained演示,用于Laravel 5.5 https://www.5balloons.info/user-role-based-authentication-and-access-control-in-laravel/

中基于角色的身份验证