gpt4 book ai didi

blockchain - 从本地数据库对应用程序用户进行身份验证的 Passport 策略

转载 作者:行者123 更新时间:2023-12-02 21:15:33 25 4
gpt4 key购买 nike

根据 Composer 文档,我可以使用 github 验证我的应用程序用户,然后重定向到我的区 block 链应用程序。

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

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

提前致谢

最佳答案

如果您使用composer-rest-server,您可以按照此link的评论进行操作。落实地方战略。但是,如果您有自己的休息服务器,则可以按照以下步骤操作:

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

2- 管理员审核用户请求,然后运行以下方法。这会创建新的参与者,并使用 adminCardName 来签署与该参与者绑定(bind)的身份,以签署添加和发行的交易。

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保存在数据库中,并使用它来查询网络以检查参与者是否存在或其身份是否已被撤销或提交交易。

关于blockchain - 从本地数据库对应用程序用户进行身份验证的 Passport 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46429351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com