framework
framework copied to clipboard
TP6设置了【应用中间件】怎么取消【控制器中间件】
场景如下:
我在后台管理项目中有一个【权限校验中间件】
应用中间件设置了该中间件, 做了全局的权限校验 控制器中间件,我想取消该中间件的执行,登录接口不需要做权限校验
我不想在中间件中硬编码,指定放行的路由,想在控制器中单独取消该权限校验的中间件,请问如何操作呢?
1、【权限校验中间件】 应该是在控制器前执行的,如果控制器不在权限范围,控制器的操作不会执行; 2、不用在中间件硬编码也可以实现的; 2.1、在配置文件中增加权限(登录权限、非登录权限、其他权限)的url配置; 2.2、中间件里读取权限配置文件,对权限(登录权限、非登录权限、其他权限)做相应的校验。
例如在 爬虫框架Scrapy中,可以设置全局中间件,也可以在单个项目中设置/取消中间件
如果读取权限配置文件
, 其实也是一种硬编码,如果我的文件控制器名字修改了,没有及时修改配置文件,就会出现不一致的情况。
当然,一般情况下是不会乱改控制器名和方法名的。
其实有点类似Python的装饰器实现的权限控制,如果在函数上增加装饰器就实现权限控制,不加就不做权限控制,避免了硬编码