一个使用签名信息用web3验证用户的简单方法
以太坊登录很快就会成为用户标准,不再需要密码,这已经不是什么新鲜事了。尽管如此,dApp开发仍然是一个相当新的赛道,其开发的许多标准仍在设定之中。现在,所有的开发者都在延续用传统做法编写dApp,本能地使用相同的JWT进行认证。我这里提出一个稍微不同的方法。我自己也开始使用JWT开发dApp。从第一个项目开始,我就觉得认证总是变得很棘手,而且在这个过程中一定有些多余的东西。在几个项目之后,我意识到JWT本身就是多余的。让我解释一下原因:
欧盟数据法案有可能颠覆智能合约,对DeFi造成潜在打击:金色财经报道,欧盟泄露的立法草案表明,政策制定者正在权衡作为DeFi基石的智能合约是否需要以开发人员可以介入并改变其交易的方式进行设计。由于美国加密货币创始人在打击行动中关注欧盟,该提案可能会影响欧盟的监管清晰度。由于案文正在谈判中,仍有可能进一步发生变化,欧盟政策制定者正竞相在6月底之前就数据法案达成协议,这意味着只剩下两周的时间来进行可能的更改。
据DL News看到的一份日期为6月8日的法案草案表明,智能合约将属于适用于使用一系列电子数据记录的计算机程序的相同定义。[2023/6/13 21:34:00]
Bitcoin Startup Lab完成150万美元种子轮融资:6月7日消息,Bitcoin Startup Lab宣布以2000万美元估值完成150万美元种子轮融资,Sora Ventures领投。[2023/6/7 21:21:25]
这张图显示了我在前几个项目中是如何进行认证的。这里的方案几乎完全复制了JWT的标准程序,唯一的一点是,用户发送的不是登录和密码,而是签名。为什么我们需要得到JWT呢?毕竟,即使没有它,你也可以通过从用户的签名中获取地址来可靠地识别身份。下面是如何简化的:
派盾:BSC和以太坊上出现大量TWIT同名代币:10月27日消息,PeckShield发布推文表示,监测到以太坊和BSC上新创建了一批同名的TWIT 代币;其中25%似乎是honeypot(蜜罐),有4个项目跌幅已经超过98%。
此前消息,Elon Musk将其推特账户简介修改为“Chief Twit”。[2022/10/27 11:48:07]
使用web3-token的认证流程用户依旧会产生一个签名,但里面有了一个过期日期,所以即便攻击者得到了这个签名,也持续不了多久。此外,签名被放在标准的授权头中,并在服务器上通过获取用户的地址和在数据库中找到用户来处理。这就是全部。你不需要在服务器上不断地更新JWT的加密密钥,所以通常来说,服务器承担了绝大部分职责。为了进一步简化这一流程,我制作了web3-token模块。要安装它,请使用以下命令。1$npmiweb3-token这个模块既可以用在服务器上,也可以用在客户端。让我们看一个例子,从客户端开始:
Phantom:正在与其他团队合作查明漏洞,认为不是Phantom特有问题:8月3日消息,Solana生态钱包Phantom在社交媒体上发文表示正在与其他团队密切合作,以查明报告的Solana生态系统漏洞。目前,团队认为这不是Phantom特有的问题。一旦收集到更多信息,将发布更新。
此前报道,Solana生态NFT市场MagicEden在社交媒体上发布警告称,似乎有一个波及面极广的SOL漏洞,正在耗尽整个生态系统的钱包。MagicEden提醒用户进行以下设置保护个人资产:1.进入Phantom钱包设置页面;2.点击受信应用;3.撤销任何可疑链接的权限。[2022/8/3 2:55:26]
调用.sign方法后,你会看到与此类似的东西。
MetaMask提醒去签署令牌正如你所看到的,该信息对用户来说是完全透明的,因为他们必须看到他们正在签署的东西。因此,我决定不使用JSON结构来提高可读性,而是使用与HTTP头相同的结构。在消息的正文中,我们可以看到令牌的版本和过期日期。接下来,这里是后端对这个令牌的处理。
这很简单,只有一行,模块会处理所有加密问题。我们则可以从签名中获得用户的地址,并使用这个地址在数据库中找到他们。举个例子,然后你就可以通过他的地址授予这个用户一个NFT。最终我们得到了一个非常方便的无状态用户认证方法,这也是混合型dApp的理想选择。唯一的缺点是,它很难在Postman中测试。本文来自比推Bitpush.News,星球日报经授权转载。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。