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、切记在登录页面不要加这个,否则会陷入死循环中。
随机推荐
- 人体增脂暴肥基因解密,吃甜点真有第二个胃?
- 祛湿神器红豆薏米芡实粥的正确做法
- 解读《易经》难
- 为五一劳动节献词- 五月的鲜花
- 解决win7不支持安装nodejs最新版本的问题
- 解决phpMyadmin出现Cannot start session without errors
- 火车头采集器V9开心版在win10无法运行修复方法
- Mysql数据库中utf8_bin、utf8_unicode_ci、utf8_general_ci的区别和选择技巧及sql语句强行更改总结
- 喝茶、牛奶都有益健康,鲜奶茶的营养能好上加好吗?
- 人生路上要善待自己,不凑合,不讨好,不解释
- 彻底屏蔽清除各种2345浏览器、好压等软件广告方法
- 挑工作的时候, 什么是最重要的?
- 头皮老化有5种成因,专家教你3大对策远离秃头
- 同事让人困扰,怎么办?
- 解决phpstudy中的phpmyadmin“缺少 mysqli 扩展 请检查 PHP 配置错误”问题
- 判断网页广告是否被浏览器拦截过滤的JS代码
- Visual Studio Code User 与 Visual Studio Code System的区别及如何选择
- 推荐本书《人类简史》
- 女生想读一个IT专业可以方便就业推荐
- 人生,需要偶尔停一停!
- 系统的学习Data & Analytics
- 男人嘴上说再多“肉麻话”,没有行动,还是算了吧
- PHP 正则表达式大全
- 器物?玩物?
- chrome离线安装包下载方法
- 红薯最简吃法
- 内莎玛(小说)
- 3秒钟快速拆开米袋缝线
- 火车头V9开心版提示Exception Processing Message 0xc0000005 Parameters解决方法
- PHP正则式eregi 语句改成preg_match语句转为preg_match函数的简单方法