Thinkphp5中auth权限设置以及实现

发布时间 - 2020-07-27 00:00:00    点击率:

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

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

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

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

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

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

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

 

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

 

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

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

error('请先登陆系统!','login/index');
        }


        //获得当前页面的控制器 / 方法
       $request=Request::instance();
       $moudle=$request->module(); //获取当前控制器名称
       $con=$request->controller(); //获取当前控制器名称
       $action=$request->action();  //获取当前方法名称
       $this->assign(array(
               'con'=>$con,
               'action'=>$action,
       ));

       $rules=$con.'/'.$action;  //组合  控制器/方法
       $auth=new Auth(); //实例化auth类
       $notCheck=array('Index/index');  //都可以访问的页面
       if(session('uid')!=1){  //不是超级管理员才进行权限判断
          if(!in_array($rules,$notCheck)){  // 是否在开放权限里面
              if(!$auth->check($rules,session('uid'))){   // 第一个参数  控制/方法   第二个参数:当前登陆会员的id
                 $this->error('没有权限','index/index');
               };
           }
        }




       }

最终展示;

 


# php  # sql  # thinkphp  # sort  # Session  # 数据库  # 的是  # 第一个  # 请先  # 第二个  # 给大家  # 类似于  # 数据库中  # 最关键  # 没有权限  # 会员登陆 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 郑州企业网站制作公司,郑州招聘网站有哪些?  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  成都网站制作公司哪家好,四川省职工服务网是做什么用?  javascript基于原型链的继承及call和apply函数用法分析  长沙做网站要多少钱,长沙国安网络怎么样?  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  网站建设要注意的标准 促进网站用户好感度!  JavaScript常见的五种数组去重的方式  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  Swift中switch语句区间和元组模式匹配  Laravel如何升级到最新版本?(升级指南和步骤)  如何挑选优质建站一级代理提升网站排名?  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  动图在线制作网站有哪些,滑动动图图集怎么做?  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  高端建站如何打造兼具美学与转化的品牌官网?  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  如何在阿里云完成域名注册与建站?  三星、SK海力士获美批准:可向中国出口芯片制造设备  Laravel如何为API生成Swagger或OpenAPI文档  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  图册素材网站设计制作软件,图册的导出方式有几种?  如何在建站之星网店版论坛获取技术支持?  实例解析Array和String方法  如何在万网自助建站中设置域名及备案?  Laravel怎么清理缓存_Laravel optimize clear命令详解  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  Laravel Session怎么存储_Laravel Session驱动配置详解  如何挑选最适合建站的高性能VPS主机?  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  利用JavaScript实现拖拽改变元素大小  米侠浏览器网页背景异常怎么办 米侠显示修复  如何快速重置建站主机并恢复默认配置?  如何快速查询网站的真实建站时间?  浅谈javascript alert和confirm的美化  如何撰写建站申请书?关键要点有哪些?  Android中AutoCompleteTextView自动提示  Windows Hello人脸识别突然无法使用  进行网站优化必须要坚持的四大原则  Laravel中的Facade(门面)到底是什么原理  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  PHP 500报错的快速解决方法  C#如何调用原生C++ COM对象详解  简历在线制作网站免费版,如何创建个人简历?