在Laravel 5.5中添加用戶角色的最有效方法是什麼?Laravel 5.5中的用戶角色
我碰到一對夫婦即
- 管理中間件
- 爲user_roles
透視表我已經試過的方法和我的應用程序中實現這兩種方法,但通過保持在問這個問題記住我的應用程序的可擴展性,以確定它們如何有效。
在Laravel 5.5中添加用戶角色的最有效方法是什麼?Laravel 5.5中的用戶角色
我碰到一對夫婦即
透視表我已經試過的方法和我的應用程序中實現這兩種方法,但通過保持在問這個問題記住我的應用程序的可擴展性,以確定它們如何有效。
如果您希望您可以在角色表上添加權限,請創建一個新的權限表以定義用戶權限。
如:
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
爲什麼你會嘗試推倒重來? Mayb你可以使用一個包。 spatie/laravel-permission包是我特別喜歡的。
快速搜索後,我還發現這個discussion laracasts與其他幾個選項。
我並不是試圖在這裏重新發明輪子,只是要求兩者的更好的方法。 ! :) –
啊好的。取決於你想完成什麼。管理中間件只是給你一個開關。如果這就夠了,你應該使用它。如果你想擁有更多的靈活性,你通常希望切換到角色。 –
我想說你需要同時擁有:中間件來檢查每個請求的訪問權限&權限表(&數據透視表)用於存儲您的權限。
有關工作例如,您可以:
免責聲明:我是這些軟件包的貢獻者。
在上面的示例中,簡而言之,權限與角色綁定,角色可以分配給所有者,所有者擁有用戶。
對我來說,看起來你需要在你的問題中提到的兩件事情。您應該有一個角色表,它定義了用戶在應用程序中可能具有的所有角色。 您將用於將用戶與用戶關聯到特定角色的user_roles數據透視表 以及您將用於在授權用戶訪問功能之前檢查角色的中間件。
扣留演示在這個環節給出了基於角色的身份驗證Laravel 5.5 https://www.5balloons.info/user-role-based-authentication-and-access-control-in-laravel/
https://github.com/spatie/laravel-permission - 這個包是相當不錯的TBH –
你能否幫你擴大由「管理中間件」來表示?您是否計劃在中間件中對用戶標識進行硬編碼或創建管理員表?還請注意,這個問題可能被視爲主要基於意見,這往往是SO的話題。 – milo526
這裏的另一個包叫做[Entrust](https://github.com/Zizaco/entrust)。 – halloei