php Laravel的多角色权限中间件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php Laravel的多角色权限中间件相关的知识,希望对你有一定的参考价值。

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class Role
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request $request
     * @param  \Closure                 $next
     *
     * @return mixed
     */
    public function handle($request, Closure $next, ... $roles)
    {
        $user      = Auth::user();
        
        //dd($roles[$role]);
        foreach ($roles as $role) {
            // Check if user has the role This check will depend on how your roles are set up
            if ($user->role == $role) {
                return $next($request);
            }
        }
    
        return response()->json(['error' => 'Unauthorized'], 403);
    }
}
/*...*/
protected $routeMiddleware = [
        /******/
        'role' => \App\Http\Middleware\Role::class,
        
  ];
Route::get('users', 'UserController@index')->middleware('role:admin,');

以上是关于php Laravel的多角色权限中间件的主要内容,如果未能解决你的问题,请参考以下文章

laravel rbac的用户 角色 权限的crud

Laravel 使用中间件进行权限控制

laravel hasmanythrough on manytomany

Laravel中间件多重角色

处理访问仪表板与laravel和委托

Entrust是一种为Laravel5添加基于角色的权限的简洁而灵活的方法。