YApi禁止注册后,怎么新增用户呢

      默认情况下YApi安装完成后,就可以注册新用户了。如果YApi搭建在外网环境,那么大家就都可以来注册用户并且创建自己的项目。这样也没有大问题,除了自己创建的项目,其他项目是没有权限的,因为只有将注册用户加入到项目成员里,这时候才有对应项目的权限。

        如果想避免无用的用户和无用的项目新增进来,可以禁止用户注册 yapi 平台,配置方式如下:在 config.json 添加 closeRegister:true 配置项。配置教程:内网部署 (hellosean1025.github.io)

         禁止注册之后我们怎么新增用户呢?

方法一:我们想到了利用原来的注册接口:/api/user/reg。

        POST http://localhost:3000/api/user/reg
        {"email":"test@github.com","password":"*******"}

直接调用会提示 "禁止注册,请联系管理员",所以我们来修改一下Yapi的注册函数,让管理员可以新增用户。

找到vendors/server/controllers/user.js 中的注册函数 async reg(ctx) ,将判断条件修改一下

if (yapi.WEBCONFIG.closeRegister ) {
      return (ctx.body = yapi.commons.resReturn(null, 400, '禁止注册,请联系管理员'));
}

替换为

if (yapi.WEBCONFIG.closeRegister && ((await this.checkLogin(ctx)) === false || this.getRole() !== 'admin')) {
      return (ctx.body = yapi.commons.resReturn(null, 400, '禁止注册,请联系管理员'));

}

 找到注册函数中设置Cookie的代码段this.setLoginCookie;加个判断,管理员新增用户时无需设置,如下:

      if ((await this.checkLogin(ctx)) === false || this.getRole() !== 'admin') {
          this.setLoginCookie(user._id, user.passsalt);
      }


此时管理员就可以用Postman等工具调用注册接口来新增用户了,调用时务必带上Cookie

Cookie获取方法:用管理员账号登录,打开浏览器开发者工具(通常是F12),随意点开YApi一个功能即可在请求头里找到,如

 如果你是使用YApi的接口运行功能来创建用户,Cookie会被浏览器安全策略覆盖。需要修改 『chrome crossRequest』插件的 manifest.json 文件,在permissions中增加YApi的访问域名或IP,如

{
    "manifest_version": 2,
    "name": "cross-request",
    "description": "YApi 跨域请求",
    "version": "3.1",
    "browser_action": {
        "default_icon": "icon.png",
        "default_popup": "popup.html"
    },
    "permissions": [ "webRequest", "webRequestBlocking", "*://192.168.101.63:*/"],
    "background": 
    {
      "scripts" : [
          "background.js"
          ]
    },
    "web_accessible_resources":[
        "index.js"        
    ],
     "content_scripts": [{
          "matches": ["http://*/*", "https://*/*"],
        "js": [
            "response.js"
        ],
        "all_frames": true
    }]
}

 YApi接口运行设置教程:接口设置-教程 (hellosean1025.github.io)

 YApi接口运行Cookie丢失解决方案:关于使用YAPI自定义Cookie丢失问题解决方案 · Issue #2032 · YMFE/yapi · GitHub

方法二:增加管理员新增用户接口 

新增方法见Issue中siwuai的回答:

关于使用YAPI自定义Cookie丢失问题解决方案 · Issue #2032 · YMFE/yapi · GitHub

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值