首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用nodejs-cloudant (nano)对Cloudant Local进行未经授权的管理

使用nodejs-cloudant (nano)对Cloudant Local进行未经授权的管理
EN

Stack Overflow用户
提问于 2017-08-21 09:01:13
回答 1查看 344关注 0票数 0

我已经试着让cloudant local运行了几个小时了。我已经通过docker安装了描述的here

我可以使用默认凭据访问localhost:8080上的仪表板。当我提供相同的证书时,我可以卷曲数据库,例如curl -X PUT $HOST/database -u admin:pass

问题是,当我连接nodejs-cloudant模块时,我总是得到401 -未经授权的错误,具体地说:

{ error: 'unauthorized', reason: 'one of _all_dbs, _admin, server_admin is required for this request', statusCode: 401 }

问题似乎是在云本地连接时没有返回用户。当我连接到基于云的cloudant实例时,reply.userCtx是填充的,但是在本地连接时是:userCtx: { name: null, roles: [] } }

虽然我用不正确的证书进行了测试,但实际登录似乎是有效的。

这是我设置凭据的地方:

代码语言:javascript
运行
复制
    const credentials = {
      account: (stage === 'local') ? 'admin' : db.credentials.username,
      password: (stage === 'local') ? 'pass' : db.credentials.password,
      plugin: 'promises',
    }
    if (stage === 'local') {
      credentials.url = 'http://localhost:8080'
    }
    this.cloudant = cloudant(credentials)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-21 15:01:23

如果您像这样提供url:

代码语言:javascript
运行
复制
var url="http://admin:pass@localhost:8080";
this.cloudant = cloudant({ url: url, plugin: "promises"});

那么它工作得很好。

问题是,当您说account = 'admin'时,库假定主机名为admin.cloudant.com。如果您提供完整的URL,那么它是明确的,并且可以完美地工作。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45788146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档