WEB:一文详解为什么 Web 3.0 时代不再需要 JWT ?

原作者:MiroslawShpak

标题:Youdon’tneedJWTanymore

编译:ChenZhou

编者注:JWT是JSONwebToken的简称,本质是一个token,是一种紧凑的URL安全方法,用于在网络通信的双方之间传递。以下为原文。

一个使用签名信息用web3验证用户的简单方法

以太坊登录很快就会成为用户标准,不再需要密码,这已经不是什么新鲜事了。尽管如此,dApp开发仍然是一个相当新的赛道,其开发的许多标准仍在设定之中。

调查:75%的游戏开发者希望在未来参与Web3游戏开发:12月20日消息,区块链娱乐公司Coda Labs委托进行的调查结果显示,四分之三(75%)的受访游戏开发者希望在未来从事Web3游戏项目工作。

除此之外,超过一半的受访者相信Web3将彻底改变游戏行业。一些人认为Web3将在用户获取和留存方面产生影响。40%的人预计实施Web3将带来更多新用户,36%的人认为Web3集成将使游戏更好地留存用户。(Cointelegraph)[2022/12/21 21:57:02]

现在,所有的开发者都在延续用传统做法编写dApp,本能地使用相同的JWT进行认证。我这里提出一个稍微不同的方法。

美国纽约州拟禁止退休金用于投资加密货币:12月4日消息,美国纽约州拟立法禁止将退休储蓄金投资于比特币等加密货币,目前纽约州总检察长Letita James已经致函国会敦促其尽快通过立法,禁止纽约州居民使用比特币和其他加密货币作为退休金的投资对象,避免退休储蓄因加密货币等不稳定资产冒险押注而被耗尽。

此前报道,纽约州共同退休基金(NewYork State Common Retirement Fund)已承认该基金通过私募股权和风险投资公司Thoma Bravo投资了FTX并造成损失。[2022/12/4 21:21:27]

我自己也开始使用JWT开发dApp。从第一个项目开始,我就觉得认证总是变得很棘手,而且在这个过程中一定有些多余的东西。在几个项目之后,我意识到JWT本身就是多余的。让我解释一下原因:

Binance Labs宣布战略投资Pancake Swap:6月6日消息,据官方消息,Binance Labs宣布战略投资Pancake Swap的效用和治理Token CAKE,具体投资金额暂未透露。Binance Labs的发言人表示:PancakeSwap一直在引领BNBChain的开发和大规模采用。鉴于Pancake Swap是使用最广泛的dApp,也是BNB链上TVL最高的DeFi项目,我们已经并将继续为该项目提供强有力的支持。

据悉,Pancake Swap是一个基于BNB链的去中心化交易平台(DEX)。它采用自动做市商(AMM)模型,允许用户交易,交换和抵押BEP-20Token。Pancake Swap还具有由BNB提供支持的分散式NFT市场。[2022/6/6 4:05:46]

这张图显示了我在前几个项目中是如何进行认证的。这里的方案几乎完全复制了JWT的标准程序,唯一的一点是,用户发送的不是登录和密码,而是签名。

为什么我们需要得到JWT呢?毕竟,即使没有它,你也可以通过从用户的签名中获取地址来可靠地识别身份。

下面是如何简化的:

使用web3-token的认证流程

用户依旧会产生一个签名,但里面有了一个过期日期,所以即便攻击者得到了这个签名,也持续不了多久。此外,签名被放在标准的授权头中,并在服务器上通过获取用户的地址和在数据库中找到用户来处理。这就是全部。你不需要在服务器上不断地更新JWT的加密密钥,所以通常来说,服务器承担了绝大部分职责。

为了进一步简化这一流程,我制作了web3-token模块。要安装它,请使用以下命令。

1$npmiweb3-token

这个模块既可以用在服务器上,也可以用在客户端。

让我们看一个例子,从客户端开始:

调用.sign方法后,你会看到与此类似的东西。

MetaMask提醒去签署令牌

正如你所看到的,该信息对用户来说是完全透明的,因为他们必须看到他们正在签署的东西。因此,我决定不使用JSON结构来提高可读性,而是使用与HTTP头相同的结构。

在消息的正文中,我们可以看到令牌的版本和过期日期。

接下来,这里是后端对这个令牌的处理。

这很简单,只有一行,模块会处理所有加密问题。我们则可以从签名中获得用户的地址,并使用这个地址在数据库中找到他们。举个例子,然后你就可以通过他的地址授予这个用户一个NFT。

最终我们得到了一个非常方便的无状态用户认证方法,这也是混合型dApp的理想选择。唯一的缺点是,它很难在Postman中测试。

本文来自比推Bitpush.News,星球日报经授权转载。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

[0:31ms0-1:31ms