安装auth拓展

composer require wenhainan/thinkphp6-auth

安装Jump拓展

composer require liliuwei/thinkphp-jump

创建权限检查中间件

 php think make:middleware CheckAuth

配置中间件别名

在需要验证权限的控制器类中调用该中间件

  protected $middleware = ['auth'];

Auth配置文件

权限处理中间件

<?php
declare (strict_types = 1);namespace app\middleware;use think\facade\Session;
use think\wenhainan\Auth;   //引入Auth类
use app\BaseController;
use liliuwei\think\Jump;/*** 权限处理中间件 */
class CheckAuth extends BaseController
{ use Jump;/*** 处理请求 */public function handle($request, \Closure $next){// 调用权限检查方法$this->checkAuth(); return $next($request);}/*** 权限检查* @return bool*/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 "<h2>admin  create </h2>";$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数组中的规则毫无必要(easyui类似的前端框架需要配置该项),auth查询不到的合法规则都可以默认访问,不合法的规则会被拒绝。另外就是TP框架的异常处理来配合Auth的使用,来达到更好的权限控制。

TP6 Auth权限使用相关推荐

  1. php auth和rbac区别,THINKPHP中的AUTH权限管理介绍

    AUTH权限管理的原理 最简单的auth权限管理的4张数据表如下图 每一个功能对应的一个url路径,规则表其实就是记录url路径,通过url来实现权限管理 权限验证时机分类 前置验证 所谓前置认证,就 ...

  2. php的auth权限类源码

    在tp5中将auth类去除了,所以需要自己引入进去,这是tp3的auth权限类源码,用的时候将auth的三张数据表名改成自己的. <?php // +---------------------- ...

  3. AUTH权限通用后台管理控制系统、阿里云UI高端大气

    基于阿里云的前端UI框架,使用THINKPHP3.2.3开发的通用后台. 目前集成了权限管理和统计管理模块,代码优美,PHP支持PHP5---PHP7,完美高端大气. 开发语言:PHP 操作系统:跨平 ...

  4. tp5 Auth权限认证方法与步骤

    一.概述 RBAC是按节点进行认证的,如果要控制比节点更细的权限就有点困难了,比如页面上面的操作按钮, 我想判断用户权限来显示这个按钮, 如果没有权限就不会显示这个按钮: 再比如我想按积分进行权限认证 ...

  5. @nuxtjs/auth权限模块使用教程(很好的代替路由卫士)

    前言 废话不多说,先看我们没有该模块该如何登陆: <template><div><h1>login page</h1><button @click ...

  6. php auth和rbac区别,php中比rbac更好的权限认证的方式auth类认证

    RBAC是按节点进行认证的,如果要控制比节点更细的权限就有点困难了,比如页面上面的操作按钮, 我想判断用户权限来显示这个按钮, 如果没有权限就不会显示这个按钮: 再比如我想按积分进行权限认证, 积分在 ...

  7. 比RBAC更好的权限认证方式(Auth类认证)

    Auth 类已经在ThinkPHP代码仓库中存在很久了,但是因为一直没有出过它的教程, 很少人知道它, 它其实比RBAC更方便 . RBAC是按节点进行认证的,如果要控制比节点更细的权限就有点困难了, ...

  8. Thinkphp中Auth认证

    权限管理在thinkphp有两种方式,比较常见用是RBAC,也是比较人用,容易理解,是基于节点的权限管理,Auth也可以做权限管理基于规则的权限管理,下面分别说说 1,Thinkphp RBAC权限管 ...

  9. 认证鉴权与API权限控制在微服务架构中的设计与实现

    引言: 本文系<认证鉴权与API权限控制在微服务架构中的设计与实现>系列的第一篇,本系列预计四篇文章讲解微服务下的认证鉴权与API权限控制的实现. 1. 背景 最近在做权限相关服务的开发, ...

最新文章

  1. ECS控制台使用小贴士
  2. android Studio 运行不显示avd 无法运行
  3. java 设置文本颜色_在Java中更改文本的颜色
  4. fastapi 模式的额外信息,示例 / Cookie参数 / Header参数
  5. iOS开发CAAnimation详解
  6. 医疗信息化 医学信息 医院管理 资料下载
  7. 使用python Selenium实现智慧树界面化自动刷网课 chromehandless实现智慧树无界面化自动刷网课
  8. winrar去弹窗广告激活办法!!
  9. Linux 火狐无法播放视频
  10. java运用kmeans算法进行聚类
  11. 上海交通大学计算机专业考研多少分进复试,2019考研:初试分数370+,有希望进上海交通大学么?...
  12. 如何做好一个APP开发项目?需要规避以下误区
  13. of引导的后置定语的总结
  14. AR隐形眼镜来了,一部手机的价格,正式开启人体佩戴测试
  15. 无线室内定位系统和技术在地下采矿中的应用综述2021Applications of Wireless Indoor Positioning Systems and Technologies in U
  16. android 实现刮刮乐刮奖效果
  17. 未雨绸缪:面试前为何要带一份不一定被阅的简历?
  18. java虚拟机原理(java虚拟机的基本结构)
  19. 第10章第21节:使用Ribbons 2生成漂亮的随机线条背景 [PowerPoint精美幻灯片实战教程]
  20. 戴尔服务器找不到网卡驱动终极解决办法

热门文章

  1. 如何输入字符串带空格?
  2. 贵州酒店加密acw_sc__v2算法分析(一),欢迎有想法的朋友一起交流
  3. 齐治运维安全培训【初级】练习题
  4. simulink模块说明
  5. 2021年山东省安全员C证考试及山东省安全员C证考试试卷
  6. 高数_证明_最值定理
  7. 软件需求分析——需求工程过程
  8. 程序员涨薪留小公司还是该跳槽去大厂?
  9. PTA 6-7-1 地下迷宫探索
  10. Mysql-DQL语言常见函数