我如何签署来自dApp的消息(不是事务)?



当使用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代替

最新更新