我目前正在考虑创建一个连接到 solana 上的虚拟钱包的 dapp。连接注册/登录用户时将创建一个用户帐户。我不确定如何验证公共地址。钱包会将信息传递到前端,我必须将此信息转发到后端,因此它是可操作且无用的......如何防止人们向服务器发送虚假地址并注册他们想要的任何帐户?我考虑过签署一条消息,但为什么不在例如 opensea.io(Eth/Metamask) 上这样做?
问问题
222 次
2 回答
1
如何防止人们向服务器发送虚假地址并注册他们想要的任何帐户?
让他们在消息上签名。
我考虑过签署一条消息,但为什么不在例如 opensea.io(Eth/Metamask) 上这样做?
这不是在 OpenSea 上完成的,因为 OpenSea 不会为其用户创建或管理用户帐户。该应用程序完全依赖于用户的 Web3 提供程序(例如 MetaMask)的 PKI。
问问自己为什么需要在后端为用户创建用户帐户。如果您需要创建这样的帐户,请让用户签署消息。如果您不需要创建用户帐户,那么只需让用户像 OpenSea 一样使用他们自己的 PKI 直接通过区块链进行身份验证。
于 2021-09-28T06:17:27.703 回答
0
为什么不在后端本身创建密钥对(公钥 + 私钥)?由于您在注册时创建了一个新帐户。向后端发送请求并创建帐户并将公钥返回给用户。
但不是这样做。您可以要求用户创建一个新钱包并使用虚拟钱包之类的东西进行登录。那有帮助吗?
于 2021-09-17T16:38:28.893 回答