我使用“IBM区 block 链平台”扩展和nodejs在 super 账本结构上开发了一个应用程序。我使用“fabric-ca-client v1.3.0”模块来注册用户和管理员证书。我想向用户添加角色,并根据链代码上的用户角色进行访问控制。我尝试注册多个证书,但该模块总是注册具有空角色和从属关系的证书,如下所示:
{"name":"admin","mspid":"Org1MSP","roles":null,"affiliation":"","enrollmentSecret":"","enrollment":{"signingIdentity":"...","identity":{"..."}}}
我在 hyperledger shim documentation 上找到了这个关于链码上角色的使用:
const ClientIdentity = require('fabric-shim').ClientIdentity;
let cid = new ClientIdentity(stub);
object passed to Init() and Invoke() methods
if (cid.assertAttributeValue('hf.role', 'auditor')) {
// proceed to carry out auditing
}
但我没有找到任何解决方案来注册和注册具有“hf.role”属性的用户
最佳答案
您必须先注册用户,然后再注册用户。您可以通过 cmdline 以及 REST 来执行此操作。对于注册用户时的 cmdline,您需要传递其他属性:
--id.attrs 'role=writer:ecert,email=user1@gmail.com'
然后在注册时:
--enrollment.attrs "role=writer,email,phone:opt"
在链代码中,您可以通过以下方式访问属性:
let cid = new ClientIdentity(stub);
if (cid.assertAttributeValue('role', 'writer')) { .. }
关于node.js - 如何将角色添加到用户的证书并在链代码中使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53995678/