我如何签署来自 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 制作的各种签名提供程序。这包括:
- WalletConnectProvider,用于通过maiar app登录
- ExtensionProvider, which is used to login via a metamask like browser extension called the maiar defi wallet
- 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 package is deprecated. Use dapp-core 改为
使用 Elrond Network 创建 dApp 时,我需要在不实际发送交易的情况下对用户进行身份验证。
对于以太坊等其他区块链,这是使用 MetaMask 实现的,它可以对消息进行签名,您可以确定用户是他所说的那个人。
我注意到 Elrond 钱包有一个“签名”功能,但我不确定如何从外部使用它,或者我如何提示用户签署消息并将其发回。
我可以使用 Maiar 扩展程序或 Elrond 钱包来签署消息吗?
如果您还没有这样做,我建议您使用 erdjs or the dapp package(包括 erdjs)来构建您的 dapp。
使用这些您将获得 elrond 制作的各种签名提供程序。这包括:
- WalletConnectProvider,用于通过maiar app登录
- ExtensionProvider, which is used to login via a metamask like browser extension called the maiar defi wallet
- 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 package is deprecated. Use dapp-core 改为