yapi禁止注册与新增用户

发布时间 2023-06-28 11:35:36作者: 小学程序员

由于我们一般在内网部署,所以账户需要由管理员来进行注册

由于后期要开放外网,老被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