Hyperledger fabric 多个composer rest服务器用户使用同一网卡

Hyperledger fabric 多个composer rest服务器用户使用同一网卡,hyperledger-fabric,hyperledger,hyperledger-composer,Hyperledger Fabric,Hyperledger,Hyperledger Composer,我在多用户模式下启动了composer rest服务器,使用github oAuth身份验证。我在chrome中打开了一个会话,在firefox中打开了一个会话(模拟两个不同的用户),并使用github进行了身份验证。现在在一个浏览器中,我希望使用一张网卡,在chrome浏览器中使用另一张网卡。现在,当我在firefox中导入网卡时,Chrome中也反映了同样的情况。这不是违背了创作的目的吗?因此,如果一个用户正在使用其网卡执行事务,那么另一个用户也将使用与其已设置为composer rest

我在多用户模式下启动了composer rest服务器,使用github oAuth身份验证。我在chrome中打开了一个会话,在firefox中打开了一个会话(模拟两个不同的用户),并使用github进行了身份验证。现在在一个浏览器中,我希望使用一张网卡,在chrome浏览器中使用另一张网卡。现在,当我在firefox中导入网卡时,Chrome中也反映了同样的情况。这不是违背了创作的目的吗?因此,如果一个用户正在使用其网卡执行事务,那么另一个用户也将使用与其已设置为composer rest server默认值的网卡。如何处理场景?

默认设置是在REST客户端设置的,而不是REST服务器。您正在将REST API作为客户机使用——作为两个不同的区块链标识(包含在您的每个业务网卡中)。一旦客户端通过REST API认证,该客户端就可以向钱包添加区块链身份。钱包是该客户的私人物品,其他客户无法使用。当REST客户端向REST服务器发出请求时,每个客户端钱包中的区块链标识将用于对该客户端进行的所有交易进行数字签名(因为该标识当时设置为默认)


github身份验证方案是一种“委托”身份验证方案,它使用客户端应用程序(id和secret)身份验证机制,使客户端能够使用REST API并获取令牌,而无需每次都以用户身份进行身份验证。

我也遇到了同样的问题。使用jwt策略将composer rest服务器配置为多用户,但无论哪个用户登录,我都看到了相同的钱包(和相同的默认卡)

我发现主要管理钱包数据的环回组件passport包正确导入了我的用户,但他们都与相同的身份关联,因为身份id取自COMPOSER_PROVIDERS配置,而不是登录用户

为了解决这个问题,我修改了环回组件passport/lib/models/user-identity.js

查看UserIdentity.login方法中填充UserIdentity的第100行

更改:

provider: provider, 
差不多

provider: profile.sub,
取决于您的有效负载/用户配置文件


之后,每个用户都将在您的环回数据库中注册自己的身份,每个登录用户都应该有自己的钱包。

因此,您的意思是说我在两个浏览器中都获得了相同的网卡,因为我在两个浏览器中都通过GitHub对同一用户进行了身份验证。