thinkphp5 rbac auth 权限认证

浏览:2660 最后更新:2016-11-26 14:06 分类:类库 关键字: thinkphp5 rbac auth 权限认证
安装    composer require zouxiang0639/thinkcms-auth 代码案例 public function _empty($name)
    {
        $auth =  new \thinkcms\auth\Auth();
        $auth = $auth->autoload($name);
        if($auth){
            if(isset($auth['code'])){
                return json($auth);
            }elseif(isset($auth['file'])){
                return $auth['file'];
            }

            $this->view->engine->layout(false);
            return $this->fetch($auth[0],$auth[1]);
        }
     return abort(404,'页面不存在');
    }
创建一个控制器把这个_empty方法加进去会渲染rbac视图,这个我就不多讲了待会看图

路由目录
/auth/role.html 角色列表
/auth/roleAdd.html 角色添加
/auth/roleEdit.html 角色修改
/auth/authorize/id/2.html 权限设置
/auth/menu.html 菜单列表
/auth/menuAdd.html 菜单增加
/auth/menuEdit.html 菜单修改    public function __construct(\think\Request $request)
    {

        parent::__construct($request);
        $this->request  = $request;
        $auth     = new Auth();
        $auth->noNeedCheckRules = ['index/index/index','index/index/home'];
        $this->uid      = Session::get('admin.id');


        if(!empty(Session::get('admin.name'))){//用户登录状态

            if(!$auth->auth($this->uid)){
                return $this->error("你没有权限访问!");
            }
        }else{
            return $this->error("您还没有登录!",url("publics/login"));
        }
    }
这个是base控制器
$auth->noNeedCheckRules 为不需要权限认证的Url
$auth->auth 权限认证方法
到了这里你的权限rbac就搞定了
后台账户密码 admin admin Auth::menuCheck($this->uid);这个方法返回授权及非隐藏的所有菜单,这样我们后台的菜单就可以根据管理员的权限来来展示授权的目录


权限条件设置

假设我们需要index/extend/edit/id/875.html在这个rul上面设置权限只有*角色能打开ID=875 的应用编辑,那我们就可以在
[参数] = id=875 这里是菜单上的URL使用
[验证规则] = {id}==875 这里是权限认证条件判断 ({id}<=1 && {id} >=1 || in_array({id},[1,2,4,5] ) )




安装地址

https://github.com/zouxiang0639/thinkcms-auth
https://packagist.org/packages/zouxiang0639/thinkcms-auth

如果上面两个都不会安装的 可以直接下载/download/875.html
或者加入 489771818 QQ群

这期就开发到这里,如果大家支持觉得好用喔会在增加两个功能
1.操作日志
2.生成菜单

我就上图了反正案例已经打包需要的童鞋直接下载即可体验





评论( 相关
后面还有条评论,点击查看>>