从多用户休息服务器运行 Hyperldger 查询时 它给出错误"Invalid or extraneous parameter access_token has been specified"



我正在使用基于ldap身份验证的多用户休息服务器。我可以成功登录,获取访问令牌并执行任意数量的交易。为此交易运行的链码也可以运行我生成的查询。但问题是,在使用相同的访问令牌时,我无法直接从我的 Web 浏览器运行此查询。我遇到此错误,该错误说access_token在运行查询时是无效或无关的参数。但是当我尝试在没有访问令牌的情况下运行查询时,它会给我错误为"AUTHORIZATION_REQUIRED",根据我的理解,这是可以的。此外,此查询在单用户休息服务器中运行良好。

在使用多用户休息服务器和从 LDAP 生成的访问令牌运行查询时,我是否需要执行不同操作。

"{"错误":

{"状态代码":500,"名称":"错误","消息":"2 未知:错误 执行链码:返回失败的交易:错误:无效 或指定了无关参数access_token","code":2,"metadata":{"_internal_repr":{}},"details":"error 执行链码:返回失败的交易:错误:无效 或无关参数access_token 指定","堆栈":"错误: 2 未知: 执行链码时出错: 返回的事务失败:错误:无效或无关 参数 access_token 已在 new 中指定 创建状态错误 (/home/composer/.npm-global/lib/node_modules/composer-rest-server/node_modules/grpc/src/client.js:64:15( at/home/composer/.npm-global/lib/node_modules/composer-rest-server/node_modules/grpc/src/client.js:583:15"}}">

实际上我们已经进行了一些更改以使其正常工作,实际上问题在于我们传递访问令牌的方式。在超级账本文档中,我们可以通过 2 种方式传递令牌:

  1. 卷曲 -v http://localhost:3000/api/system/ping?access_token=xxxxx
  2. curl -v -H 'X-Access-Token: xxxxx' http://localhost:3000/api/system/ping

我正在使用第一种方法传递访问令牌,我的所有交易都工作正常,但查询失败,似乎访问令牌已传递给查询,并且无法识别参数。所以我尝试了第二种方法并能够运行查询。我想Hyperleder论坛应该提到这样的限制。

相关内容

最新更新