栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

TP6 Auth权限使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

TP6 Auth权限使用

安装auth拓展
composer require wenhainan/thinkphp6-auth
安装Jump拓展
composer require liliuwei/thinkphp-jump
创建权限检查中间件
 php think make:middleware CheckAuth
配置中间件别名

在需要验证权限的控制器类中调用该中间件
  protected $middleware = ['auth'];
Auth配置文件

 权限处理中间件

 

checkAuth(); 
        return $next($request);
    }
  
    
    function checkAuth() {   
        //已登录用户id  
        $id=session('id');
        if (!$id) { 
            $this->redirect('/admin/login');
        }
       
        $module     = request()->root();   //应用名
        $controller = request()->controller();   //控制器名
        $action     = request()->action();     //方法名
        // 请求到的规则名 AuthRule Name
        $url=$module . '/' . $controller . '/' . $action;  
        //实例化Auth
        $auth  = new Auth(); 
        if (!$auth->check( $url , $id ) ) {
          // 没有权限跳转到未授权页面
          $this->success("当前用户没有该操作权限,请联系管理员!",'../');
        }  
    } 
} 
注意细节,冗余代码不必再用。 我的测试通过截图如下

测试用户登录

 

管理员登录

 

 访问一个不存在控制器时,跳转到上一页

 需要注意:

                $url的值不在搜索的$not_check数组中,输出===》不存在

                取反,输出===》存在

 function create(){  
    echo "admin  create ";

    $url='/admin/Index/json';
    // 排除权限
    $not_check = ['/admin/Login/logout','/admin/Login','/admin/Index/unauth'];
      
    // $url要搜索的值   $not_check要搜索的数组
    if (in_array( $url, $not_check )) { 
              echo "存在";
       }else{ 
              echo "不存在";
       } 
  }

 所以排除的$not_check数组中的规则毫无必要,auth查询不到的合法规则都可以默认访问,不合法的规则会被拒绝。另外就是TP框架的异常处理来配合Auth的使用,来达到更好的权限控制。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/759145.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号