如何通过 laravel 5.6 中的角色保护用户管理区域?
Posted
技术标签:
【中文标题】如何通过 laravel 5.6 中的角色保护用户管理区域?【英文标题】:How to protect admin area from users by role in laravel 5.6? 【发布时间】:2018-12-04 01:51:22 【问题描述】:我一直在寻找简单的 Laravel 5.6+ 版本角色和用户解决方案。
我想要一张users
表。所以我在我的表中添加user_type
为string
in
$table->enum('role', ['admin', 'user']);
我应该创建或更新哪些文件来保护/admin
路由下的所有内容。并且不要让admins
路由用于users
?
【问题讨论】:
【参考方案1】:您应该创建一个在所有 /admin 路由中都处于活动状态的中间件。在此中间件中,您应该检查登录的用户 (Auth::user()
) 是否具有“管理员”角色。
Auth::user()
引用User
-模型。
所以在User
-model 中你可以创建一个类似isAdmin()
的函数:
public function isAdmin()
return $this->role === 'admin'
在中间件(或任何你想要的地方)你可以写
if(Auth::user()->isAdmin())
// do something if user is admin
else
// do something if user is not admin
由于它在User
-model 中,您也可以为普通用户模型编写$user->isAdmin()
。
【讨论】:
以上是关于如何通过 laravel 5.6 中的角色保护用户管理区域?的主要内容,如果未能解决你的问题,请参考以下文章