🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 前言: 中间件主要用于拦截或过滤应用的HTTP请求,并进行必要的业务处理。 新版部分核心功能使用中间件处理,你可以灵活关闭。 # 控制器里面用中间件 首先 可以根据官方文档建立个中间件[https://www.kancloud.cn/manual/thinkphp6_0/1037493](https://www.kancloud.cn/manual/thinkphp6_0/1037493) 我这里实现的是后台验证是否登陆,没有登录跳到登录页。 1,可以通过命令行指令快速生成中间件,得到对应的文件,路径:app\middleware\CheckAdmin ~~~ php think make:middleware CheckAdmin ~~~ 2,然后目录下的config/app.php文件中的deny\_app\_list里面要加上middleware,因为不要让外部访问到中间件 ![](https://img.kancloud.cn/bc/6b/bc6b025410f80d368846d191940e1681_441x64.png) 3,因判断登录需要用到session,而tp6 默认不开启session 那么在中间件中需要开启session app目录下的middleware.php 文件 开启session初始化,去掉注释即可 ![](https://img.kancloud.cn/8f/99/8f991456d72f90259d39d7d3eacd55d1_938x392.png) 4,之后在刚才建的中间件文件中判断登录与否(记得引入seesion) ![](https://img.kancloud.cn/cc/ba/ccba81723b2eceb0ae4eda45c4935b83_769x717.png) 5在后台Base中使用中间件, 这样后台所有的方法都会走中间件判断登陆与否,中间件排查这办法不做验证 ~~~ 'except' => ['login','login_in'] ~~~ ![](https://img.kancloud.cn/3a/2b/3a2b4e3df0949fa8cfa1db3e32c67c5e_830x369.png) # 应用里面用全局中间件(用于api校验签名等效果)