Thinkphp5中auth权限设置以及实现

下面由thinkphp框架教程栏目给大家介绍thinkphp5中auth权限设置以及实现,希望对需要的朋友有所帮助!

Thinkphp5中auth权限设置以及实现

1.将auth类下载好 放置目录: extendauthauth.php

2.将类中的sql语句执行,可以在数据库中创建3张表 auth_group(用户组表)           auth_rule(权限规则表)           auth_group_access(用户与用户组关联表)

3.我想给规则 添加一个级别关系(类似于无限极分类)   auth_rule(权限规则表) 中添加3个字段  pid(父级id ,0为顶级权限)   level(级别)    sort(排序),如下图

Thinkphp5中auth权限设置以及实现

立即学习PHP免费学习笔记(深入)”;

4,首先 自己创建管理员表,比如叫admin表,增删改查 自己去正常设计,group字段为所属用户组

Thinkphp5中auth权限设置以及实现

5.auth_group用户组的 增删改查 也自己去制作一下,id,用户组名称,状态(开启,或者关闭),规则(所对应的是规则表的id)

Thinkphp5中auth权限设置以及实现

6.auth_rule规则表 增删改查 也自己去制作一下,id,name(控制器/方法),title(规则名称 )  status状态(开启,或者关闭),

 Thinkphp5中auth权限设置以及实现

7. 在添加用户的时候 给用户选择 所属用户组, uid(对应的是用户id)   group_id(对应的是用户所属用户组的id),这样就关联起来了

Thinkphp5中auth权限设置以及实现

 

8.把会员登陆功能做好,登陆成功设置Session(‘id’),将当前登陆会员ID存在session中

9.最关键的的一步,就是使用auth类进行验证,在common.php这个公共页面中 使用

<?php namespace appadmincontroller; use thinkController; use thinkRequest; use authAuth; //引入suth类 class Common extends Controller {     public function _initialize(){       //初始化判断用户是否已经登陆       if(!session(&#39;uname&#39;)){           $this->error('请先登陆系统!','login/index');         }           //获得当前页面的控制器 / 方法        $request=Request::instance();        $moudle=$request-&gt;module(); //获取当前控制器名称        $con=$request-&gt;controller(); //获取当前控制器名称        $action=$request-&gt;action();  //获取当前方法名称        $this-&gt;assign(array(                'con'=&gt;$con,                'action'=&gt;$action,        ));         $rules=$con.'/'.$action;  //组合  控制器/方法        $auth=new Auth(); //实例化auth类        $notCheck=array('Index/index');  //都可以访问的页面        if(session('uid')!=1){  //不是超级管理员才进行权限判断           if(!in_array($rules,$notCheck)){  // 是否在开放权限里面               if(!$auth-&gt;check($rules,session('uid'))){   // 第一个参数  控制/方法   第二个参数:当前登陆会员的id                  $this-&gt;error('没有权限','index/index');                };            }         }            }

最终展示;

Thinkphp5中auth权限设置以及实现

Thinkphp5中auth权限设置以及实现

Thinkphp5中auth权限设置以及实现

 

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享