Laravel 5.1 ACL权限控制 四 之middleware

Laravel权限中间件实现
本文介绍如何在Laravel框架中实现一个权限中间件,确保只有管理员用户才能访问特定资源。通过创建中间件、实现权限判断逻辑、注册路由中间件等步骤,详细展示了整个过程。

1、创建Middleware

php artisan make:middleware MustBeAnAdmin

2、实现 MustBeAnAdmin.php中的handle方法,判断登录的用户是否为管理员

    public function handle($request, Closure $next)
    {
        if($request->user() && $request->user()->isAdmin()) {
            return $next($request);
        }
        return  redirect('/');
    }

  在User.php中实现isAdmin方法

    public function isAdmin() {
        return $this->hasRole('admin');
    }

3、在Kernel里的$routeMiddleware注册middleware路由

'admin' => \App\Http\Middleware\MustBeAnAdmin::class,

4、在PostController.php中实现middleware

    public function __construct()
    {
        $this->middleware('admin');
    }

5、到此我们再在roles、role_user表中个添加一条数据 

  roles表

  

  role_user表

   

  登录不同的用户,经测试访问正常(admin能正常访问,member访问跳转到首页),

  如果访问有问题,请在第4步  $this->middleware('admin'); 前添加 \Auth::loginUsingId(1); 再次测试

 

转载于:https://www.cnblogs.com/Caoxt/p/5010627.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值