当使用Elrond Network创建dApp时,我需要在不实际发送交易的情况下对用户进行身份验证。
对于像以太坊这样的其他区块链,这是使用MetaMask来实现的,它可以签署消息,并且您可以确保用户是他所说的那个人。
我注意到埃尔隆德钱包有一个"标志"。功能,但我不确定如何从外部使用它,或者我如何提示用户签署消息并将其发送回去。
我可以使用邮件扩展或Elrond钱包签名消息吗?
如果你还没有这样做,我建议你使用erdjs或dapp包(其中包括erdjs)来构建你的dapp。
使用这些,您将获得elrond制作的各种签名提供程序。这包括:
- WalletConnectProvider,用于通过主应用程序登录
- ExtensionProvider,用于通过元掩码登录,类似于称为主定义钱包的浏览器扩展
- HWProvider,用于通过账本硬件登录
所有这些提供程序允许您登录,签署交易,发送交易以及签署自定义消息。
通过ExtensionProvider登录的示例代码:
let provider = ExtensionProvider.getInstance();
await provider.init();
let walletAddress = await provider.login();
let message = new SignableMessage({message: "Sign this message to make sure you are logged in"});
let signedMessage = await provider.signMessage(message);
当然,在这种情况下使用签名消息是可选的,但如果您计划实现一些服务器端身份验证流,则可能很有用。
对Martin W的贡献:
dapp包已弃用。用dapp-core代替