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、切记在登录页面不要加这个,否则会陷入死循环中。
随机推荐
- PHP 正则表达式大全
- Thinkphp查询mysql数据库多个字段是否包含某个词的sql语句
- composer安装、更新及切换下载源
- 头皮老化有5种成因,专家教你3大对策远离秃头
- 解决phpMyadmin出现Cannot start session without errors
- 一饿就出现无力、手抖、心慌,这是怎么回事?
- Visual Studio Code User 与 Visual Studio Code System的区别及如何选择
- 判断网页广告是否被浏览器拦截过滤的JS代码
- 为五一劳动节献词- 五月的鲜花
- JS判断google广告被屏蔽弹出对话框
- PHP正则式eregi 语句改成preg_match语句转为preg_match函数的简单方法
- phpMyadmin出现缺少 mcrypt 扩展,请检查 PHP 配置是怎么回事
- chrome离线安装包下载方法
- 3秒钟快速拆开米袋缝线
- 多吃葡萄对眼睛有益!
- 四个步骤提高你的情绪韧性挺过难关
- 28岁女网红,直播时心梗猝死,医生:这种食物天天吃,血管易堵死
- 男人嘴上说再多“肉麻话”,没有行动,还是算了吧
- 红薯最简吃法
- 系统的学习Data & Analytics
- 有感大公司加薪升职之难
- Thinkphp单应用中用中间件处理权限
- 解读《易经》难
- 神草马齿苋[mǎ chǐ xiàn] ,有多神奇?
- Mysql数据库中utf8_bin、utf8_unicode_ci、utf8_general_ci的区别和选择技巧及sql语句强行更改总结
- 人生,需要偶尔停一停!
- 火车头采集器V9开心版在win10无法运行修复方法
- 火车头V9开心版提示Exception Processing Message 0xc0000005 Parameters解决方法
- 解决phpstudy中的phpmyadmin“缺少 mysqli 扩展 请检查 PHP 配置错误”问题
- 器物?玩物?