2017-09-14 51 views
2

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

我碰到一對夫婦即

  • 管理中間件
  • 爲user_roles

透視表我已經試過的方法和我的應用程序中實現這兩種方法,但通過保持在問這個問題記住我的應用程序的可擴展性,以確定它們如何有效。

+0

https://github.com/spatie/laravel-permission - 這個包是相當不錯的TBH –

+0

你能否幫你擴大由「管理中間件」來表示?您是否計劃在中間件中對用戶標識進行硬編碼或創建管理員表?還請注意,這個問題可能被視爲主要基於意見,這往往是SO的話題。 – milo526

+0

這裏的另一個包叫做[Entrust](https://github.com/Zizaco/entrust)。 – halloei

回答

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 
0

爲什麼你會嘗試推倒重來? Mayb你可以使用一個包。 spatie/laravel-permission包是我特別喜歡的。

快速搜索後,我還發現這個discussion laracasts與其他幾個選項。

+0

我並不是試圖在這裏重新發明輪子,只是要求兩者的更好的方法。 ! :) –

+0

啊好的。取決於你想完成什麼。管理中間件只是給你一個開關。如果這就夠了,你應該使用它。如果你想擁有更多的靈活性,你通常希望切換到角色。 –

0

我想說你需要同時擁有:中間件來檢查每個請求的訪問權限&權限表(&數據透視表)用於存儲您的權限。

有關工作例如,您可以:

免責聲明:我是這些軟件包的貢獻者。

在上面的示例中,簡而言之,權限與角色綁定,角色可以分配給所有者,所有者擁有用戶。

0

對我來說,看起來你需要在你的問題中提到的兩件事情。您應該有一個角色表,它定義了用戶在應用程序中可能具有的所有角色。 您將用於將用戶與用戶關聯到特定角色的user_roles數據透視表 以及您將用於在授權用戶訪問功能之前檢查角色的中間件。

扣留演示在這個環節給出了基於角色的身份驗證Laravel 5.5 https://www.5balloons.info/user-role-based-authentication-and-access-control-in-laravel/