我需要在我自己的域/服务器上验证连接了 MetaMask 钱包的用户是否是特定 NFT 的所有者,以便允许他使用特殊功能?基本上,我想让用户访问只有该 NFS 所有者才能访问的区域。
我原来的 NFT 在 opensea 中出售,但我不能使用 opensea 隐藏区域选项来为用户提供隐藏密码,因为下一个所有者(转售后)和旧所有者将拥有相同的密码,并且旧所有者仍然可以访问像这样。但我需要只有当前所有者才能访问。
我的用户/访问者已经可以在我自己的域中与 MetaMask 连接,并且我获得了活动帐户的公共 ETH 地址,但由于这只是 javascript 而我的后端是 PHP,所以我不能将 MetaMask 信息发布到我的 PHP 后端,因为这很容易被欺骗/破解。
如何确保当前连接的 MetaMask 帐户与 NFT 所有者(我知道)相同,并仅允许该用户访问 URL?
我当前的状态是用户连接他的 MetaMask,我使用 opensea API 来检查当前谁是 NFT 的所有者。我可以比较两个 eth 地址,但其中的缺陷显然是我使用 ajax 将 MetaMask 公共地址发送到我的后端,这仅用于测试,因为这当然是零保存!
预先感谢您提供我能得到的任何想法、帮助和提示。
PS:我的后端是PHP
几个小时以来,我一直在努力解决问题,没有找到任何解决方案。我在Ionic移动应用程序中使用Moment.js。
在某个时候,我以“小时”和“分钟”的格式获取带有“从”和“到”时间的json数据:
营业时间示例:
{“从”:14460000,“到”:100740000}
我使用此json数据的时刻如下所示:
var from_time = moment(hours.object.from).format("HH:mm");
var to_time = moment(hours.object.to).format("HH:mm");
Run Code Online (Sandbox Code Playgroud)
问题是,在Android设备上,一切都正确,但是在iOS设备上,时间转换错误
在Android上的结果:00:01 // 23:59
在iOS上的结果01:01 // 00:59
进行此测试时,两部手机(Android和ios设备)在相同的时区和相同的位置。以及我的计算机(浏览器控制台)确实向我显示了正确的时间(例如Android),只有iOS设备可以关闭一小时。
感谢您的帮助。