yapi禁止注册与新增用户
由于我们一般在内网部署,所以账户需要由管理员来进行注册
由于后期要开放外网,老被ddos攻击,所以觉得收回注册权限
收回权限
首先找到控制关闭注册的逻辑代码,是server下user控制器去判断的,如果关闭注册,将在页面提示禁止注册,请联系管理员
docker exec -u root -it yapi /bin/sh
cd /api/vendors/server/controllers
cat user.js
以上,第一个结论是是否开启注册是由“yapi.WEBCONFIG.closeRegister”的值来判断的,所以,我们的下一个逻辑是找到yapi变量是哪里来的?
通过读取user.js源代码,我们可以看到文件头部,可以看到yapi是通过引入父目录的yapi.js文件导入的。
const yapi = require('../yapi.js');
进入父目录,查看yapi.js源码,这次我们要找到yapi的属性值WEBCONFIG是怎么设置的
cd /api/vendors/server
第二个结论,我们通过读取源代码,可以发现,WEBCONFIG属性通过config变量赋值给它的。再往文件头部看代码,发现config变量来源于父父级目录的config.json;至此我们可以找到这个值closeRegister的设置文件了。
最终解决方案:
编辑config.json文件,默认这个文件是没有closeRegister该值的,编辑文件,添加并设置closeRegister为true
cd /api
vi config.json
结果
启动admin注册机制
通过前面的逻辑,我们可以知道控制地方在/api/vendors/server/controllers/user.js中的reg方法中
我们需要将admin用户放行
接下来看
在注册方法中还有一段代码是设置cookie的代码,改为
此时管理员就可以用Postman等工具调用注册接口来新增用户了,调用时务必带上Cookie
参考:https://blog.csdn.net/fangling86/article/details/127494960