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

How can I sign a message(not transaction) from a dApp?

使用 Elrond Network 创建 dApp 时,我需要在不实际发送交易的情况下对用户进行身份验证。

对于以太坊等其他区块链,这是使用 MetaMask 实现的,它可以对消息进行签名,您可以确定用户是他所说的那个人。

我注意到 Elrond 钱包有一个“签名”功能,但我不确定如何从外部使用它,或者我如何提示用户签署消息并将其发回。

我可以使用 Maiar 扩展程序或 Elrond 钱包来签署消息吗?

如果您还没有这样做,我建议您使用 erdjs or the dapp package(包括 erdjs)来构建您的 dapp。

使用这些您将获得 elrond 制作的各种签名提供程序。这包括:

所有这些提供商都允许您登录、签署交易、发送交易以及签署自定义消息。

通过 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 package is deprecated. Use dapp-core 改为