Thinkphp单应用中用中间件处理权限
因为开发的系统功能比较简单,所以直接用单应用,权限系统也很简单,就是判断是否管理员登录,如果不是跳到登录页面
1、在app目录下新建一个文件夹middleware,在里面创建文件Admin.php,内容如下
<?php namespace app\middleware; class Admin { public function handle($request, \Closure $next) { // 添加中间件执行代码 // 判定用户是否登录 $loginAdmin =session('adminAccount'); if (!$loginAdmin) { return redirect('/admin/login'); } else { return $next($request); } } }
2、编辑config\middleware.php,修改为
<?php // 中间件配置 return [ // 别名或分组 'alias' => [ 'checkadmin' => app\middleware\Admin::class, ], // 优先级设置,此数组中的中间件会按照数组中的顺序优先执行 'priority' => [], ];
3、编辑app\middleware.php,去掉session的注释,修改后如下
<?php // 全局中间件定义文件 return [ // 全局请求缓存 // \think\middleware\CheckRequestCache::class, // 多语言加载 // \think\middleware\LoadLangPack::class, // Session初始化 \think\middleware\SessionInit::class, ]; 4、在需要判断登录的页面,类属性中增加一个中间件属性,protected $middleware = ['checkadmin'],例如文章管理类中 <?php declare(strict_types = 1); namespace app\admin\controller; use think\Request; use think\facade\Db; class AdminArticle { protected $middleware = ['checkadmin']; public function index() { return redirect('adminarticle/list')->send(); }
5、切记在登录页面不要加这个,否则会陷入死循环中。
随机推荐
- 解决phpMyadmin出现Cannot start session without errors
- 多吃葡萄对眼睛有益!
- 《《无依之地》的原著小说:《Nomadland: Surviving America in the twenty - First Century》
- 28岁女网红,直播时心梗猝死,医生:这种食物天天吃,血管易堵死
- 火车头V9开心版提示Exception Processing Message 0xc0000005 Parameters解决方法
- 喝茶、牛奶都有益健康,鲜奶茶的营养能好上加好吗?
- php函数检测网站页面是否已经被百度收录
- Thinkphp查询mysql数据库多个字段是否包含某个词的sql语句
- 3秒钟快速拆开米袋缝线
- 人生,需要偶尔停一停!
- 头皮老化有5种成因,专家教你3大对策远离秃头
- 推荐本书《人类简史》
- 祛湿神器红豆薏米芡实粥的正确做法
- 四个步骤提高你的情绪韧性挺过难关
- JS判断google广告被屏蔽弹出对话框
- chrome离线安装包下载方法
- 网站检测用户浏览器是否安装 AdBlock 类的广告拦截插件的 6 种方法
- 内莎玛(小说)
- 解读《易经》难
- PHP 正则表达式大全
- composer安装、更新及切换下载源
- 一饿就出现无力、手抖、心慌,这是怎么回事?
- phpMyadmin出现缺少 mcrypt 扩展,请检查 PHP 配置是怎么回事
- 判断网页广告是否被浏览器拦截过滤的JS代码
- 红薯最简吃法
- Thinkphp单应用中用中间件处理权限
- 新发现在新窗口打开链接属性target="_blank"和target="new"竟然是不同的
- 有感大公司加薪升职之难
- 器物?玩物?
- 解决phpstudy中的phpmyadmin“缺少 mysqli 扩展 请检查 PHP 配置错误”问题