NFT 可以用于 Web 应用程序的身份验证吗

Can NFT be used for authentication on web apps

NFT 可以用作身份验证的手段吗?场景是用户购买 NFT(ERC721)现在他访问使用此令牌进行身份验证的站点,所以我猜测站点上的 web3.js 检查用户钱包如果他在钱包中有令牌然后可以访问站点....但是服务器端调用呢...服务器可以检查分类帐以查看谁拥有令牌,但是它如何知道拨打电话的人是否是所有者..地址可以被欺骗所以发送它用电话是没有问题的。如果用户出售他的代币现在新用户拥有它也是这种情况

我在想数字签名之类的东西,但是如何获得所有者 public 密钥,并且要求用户签署消息很麻烦...我是新手,我知道什么,但是 所以 要求我在寻求答案之前先尝试回答我的问题,还有一些代码是每个帖子的要求

pragma solidity ^0.4.22;contract helloWorld {
 function renderHelloWorld () public pure returns (string) {
   return 'helloWorld';
 }
}

检查查看者是否拥有拥有令牌的地址是不够的。您需要通过要求查看者在消息上签名来确认查看者控制了该地址。

像这样的一个系统叫做MetaKey

如果你想与后端协调会话,你需要做额外的工作,因为 NFT 可以转移。当 NFT 转移时,您需要撤销会话密钥,这需要您监控区块链的转移事件。

不过,我不建议围绕 NFT 构建登录基础设施。避免安全漏洞将极其困难或不可能。最好使用钱包签名来验证人们的身份。网上有很多构建此流程的教程,例如 here.