分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

【Thinkphp 5】auth权限设置以及实现

发布时间:2023-09-06 01:41责任编辑:沈小雨关键词:暂无标签

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这个公共页面中 使用

 1 <?php 2 namespace app\admin\controller; 3 use think\Controller; 4 use think\Request; 5 use auth\Auth; //引入suth类 6 class Common extends Controller ?7 { ????8 ????public function _initialize(){ 9 ??????//初始化判断用户是否已经登陆10 ??????if(!session(‘uname‘)){ ?11 ??????????$this->error(‘请先登陆系统!‘,‘login/index‘);12 ????????}13 14 15 ????????//获得当前页面的控制器 / 方法 ??16 ???????$request=Request::instance();17 ???????$moudle=$request->module(); //获取当前控制器名称18 ???????$con=$request->controller(); //获取当前控制器名称19 ???????$action=$request->action(); ?//获取当前方法名称20 ???????$this->assign(array(21 ???????????????‘con‘=>$con,22 ???????????????‘action‘=>$action,23 ???????));24 ???????25 ???????$rules=$con.‘/‘.$action; ?//组合 ?控制器/方法26 ???????$auth=new Auth(); //实例化auth类27 ???????$notCheck=array(‘Index/index‘); ?//都可以访问的页面28 ???????if(session(‘uid‘)!=1){ ?//不是超级管理员才进行权限判断29 ??????????if(!in_array($rules,$notCheck)){ ?// 是否在开放权限里面30 ??????????????if(!$auth->check($rules,session(‘uid‘))){ ??// 第一个参数 ?控制/方法 ??第二个参数:当前登陆会员的id31 ?????????????????$this->error(‘没有权限‘,‘index/index‘);32 ???????????????};33 ???????????} 34 ????????}35 36 ???????37 ???????38 ???????39 ???????}

最终展示;

【Thinkphp 5】auth权限设置以及实现

原文地址:https://www.cnblogs.com/chengjing/p/8417125.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved