多应用模式 中间件没有显式引用 为什么还会调用

zzdfwl

问题描述

项目中使用了多应用模式,后面简称index应用。index应用下有一个中间AuthCheck,index应用下面有两个分组user,group。我希望的是user这个分组除了部分方法,其余都需要验证是否登录。group这个分组都不需要登录。现在的问题是我user分组引用的了AuthCheck,group没有引用,为啥group分组的路由还是会走到AuthCheck中间件?如果要让group分组不走AuthCheck该怎么处理

路由部分代码:
截图

中间件配置文件:
截图

中间件代码:
截图

还有一个疑问:按照官方文档的说法,应用中间件在整个应用中也是全局生效的,是不是我在config/middleware.php中配置了应用中间件,在整个对应的应用路由中就可以不用显式关联?如果是这样,那我上面那种问题如何优雅的处理?

123 2 0
2个回答

latin

你 config/middleware.php 里配置的

'index' => app\middleware\AuthCheck::class

意思就是index应用的请求全部走 AuthCheck 中间件,如果不想全部走,就不要这个配置

gddd

https://www.workerman.net/doc/webman/middleware.html
中间件分为全局中间件、应用中间件(应用中间件仅在多应用模式下有效,参见多应用)、路由中间件
中间件执行顺序为全局中间件->应用中间件->路由中间件

解决办法有很多,去掉应用中间件,只用路由中间件,估计你不想这样
也可以,在中间件中做个判断就行了,你懂得

  • zzdfwl 9天前

    中间件执行顺序为全局中间件->应用中间件->路由中间件 感谢

×
🔝