使用 MultiversX 网络创建 dApp 时,我需要在不实际发送交易的情况下对用户进行身份验证。
对于以太坊等其他区块链,这是使用 MetaMask 来实现的,它可以签署消息,并且您可以确定用户就是他所说的那个人。
我注意到 Elrond 钱包有一个“签名”功能,但我不确定如何从外部使用它,或者如何提示用户签名消息并将其发回。
我可以使用 MultiversX 扩展程序或 MultiversX 钱包来签署消息吗?
如果您还没有这样做,我建议您使用erdjs或dapp 包(其中包括 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);
Run Code Online (Sandbox Code Playgroud)
当然,在这种情况下使用签名消息是可选的,但如果您计划实现某些服务器端身份验证流程,则可能会很有用。