【问题标题】:How to protect admin area from users by role in laravel 5.6?如何通过 laravel 5.6 中的角色保护用户管理区域?
【发布时间】:2018-12-04 01:51:22
【问题描述】:

我一直在寻找简单的 Laravel 5.6+ 版本角色和用户解决方案。 我想要一张users 表。所以我在我的表中添加user_typestring in

$table->enum('role', ['admin', 'user']);

我应该创建或更新哪些文件来保护/admin 路由下的所有内容。并且不要让admins 路由用于users

【问题讨论】:

    标签: laravel-5.5 acl user-roles


    【解决方案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()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-29
      • 2018-10-08
      • 2012-12-09
      • 2011-03-20
      • 1970-01-01
      • 2019-10-19
      • 2014-07-18
      相关资源
      最近更新 更多