Passport策略从本地数据库验证应用程序用户

时间:2017-09-26 14:35:08

标签: blockchain hyperledger-composer

根据作曲家文档,我能够使用github验证我的应用程序用户,然后重定向到我的区块链应用程序。

但是我必须使用我的本地数据库来存储应用程序用户,并且必须根据我本地数据库中存储的身份验证应用程序用户。

我应该使用哪种护照策略,请告诉我相应的步骤。

提前致谢

1 个答案:

答案 0 :(得分:0)

如果您使用的是composer-rest-server,则可以按照此link上的注释来实施本地策略。 但是,如果您有自己的休息服务器,则可以按照以下步骤操作:

1-允许参与者注册并将注册信息添加到您的数据库中,除了添加未决字段= true, 因此默认情况下,所有参与者都将等待管理员批准。

2-管理员查看用户请求,然后运行以下方法。 它将使用adminCardName创建新的参与者并绑定到该参与者,并具有与该参与者绑定的发行身份。

const IdentityIssue = require('composer-cli/lib/cmds/identity').Issue;
const ParticipantAdd = require('composer-cli/lib/cmds/participant').Add;
const CardImport = require('composer-cli/lib/cmds/card').Import;
const NetworkPing = require('composer-cli/lib/cmds/network').Ping;

const createParticipantCard = async (participantDetails) => {
    const participantOptions = {
      card: AdminCardName,
      data: JSON.stringify({
       $class: 'Name Space and type for your participant',
       participantId: participantDetails.participantId,
       email: participantDetails.email,
       name: participantDetails.name,
      }),
   };

   const issueOptions = {
     card: AdminCardName,
     file: `cards/identities/${participantDetails.participantId}.card`,
     newUserId: participantDetails.participantId,
     participantId:
    `resource:org.finance.einvoice.participant.Company#
     ${participantDetails.participantId}`,
   };

   const importOptions = {
     file: `cards/identities/${participantDetails.participantId}.card`,
     card: participantDetails.participantId,
   };

   const pingOptions = {
     card: participantDetails.participantId,
   };

   try {
    await ParticipantAdd.handler(participantOptions);
    await IdentityIssue.handler(issueOptions);
    await CardImport.handler(importOptions);
    await NetworkPing.handler(pingOptions);
    return participantDetails.participantId;
   } catch (err) {
    throw err;
   }
  }

2-在任何如下文件中调用此方法:

const createdParticipantId = await createParticipantCard(participantDetails);

您可以将createdParticipantId保存在数据库中,然后使用它查询网络以检查参与者是否存在或者其身份是否已被撤销或提交交易。