中间件主要处理http请求,比如拦截、过滤,对此进行相应的处理
如果在多应用模式下,我们可以为各个模块新增这个文件,用来处理自己的http请求。注意,必须要新增handle方法。
启动中间件
方案一:
通过共同文件配置,对所有的页面都适用
创建好中间件后,暂时还不可用,我们需要做配置,将app目录下的中间件定义文件复制到当前模块目录下,定义好路径即可。
方案二:
通过路由绑定,指定特定的页面
中间件官网教程:
https://www.kancloud.cn/manual/thinkphp6_0/1037493
https://www.kancloud.cn/manual/thinkphp6_0/1037515
- <?php
- namespace app\controller;
-
-
- class Index
- {
-
- //方法一:所有都要验证
- protected $middleware = [Auth::class];
- 或 protected $middleware = ['Auth'];
-
- //方法二:验证部分
- protected $middleware = [
- 'auth' => ['except' => ['hello'] ],//除了hello方法,其它方法都验证
- 'check' => ['only' => ['hello'] ],//只有hello方法验证,其它方法都不用
- ];
-
- public function index()
- {
- return 'index';
- }
-
- public function hello()
- {
- return 'hello';
- }
- }
重点:
except=除了的意思 only=只有的意思
- <?php
- namespace app\index\controller;
-
- class Index
- {
- protected $middleware = [
- Auth::class . ':admin' => ['except' => ['hello'] ],
- 'Hello' => ['only' => ['hello'] ],
- ];
-
- public function index()
- {
- return 'index';
- }
-
- public function hello()
- {
- return 'hello';
- }
- }
TP6例子:
- //引用
- use app\middleware\JwtAuthMiddleWare;
-
- //控制器中
- protected $middleware = [
- JwtAuthMiddleWare::class => ['only' => ['verificationToken'] ],
- ];
————————————————
版权声明:本文为CSDN博主「前端一号站」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39553363/article/details/105338227