Javascript 我需要验证jwt吗?

Javascript 我需要验证jwt吗?,javascript,node.js,jwt,Javascript,Node.js,Jwt,这是我的场景,我生成了一个jwt令牌,并用1小时的TTL将该令牌存储在redis中。 现在我看到大多数教程都使用jwt.verify来验证令牌 我知道他们正在验证令牌是否真实 为什么我需要使用jwt.verify。。为什么我不能使用redis.exists来检查令牌是否真实 他们大多说,我们可以使用jwt的主要功能是不需要使用db来检查用户和过期情况 但在我的场景中,我无法将所有内容都存储在token中。。因此,我使用redis存储带有会话信息的令牌 问题是 1.所以我不应该在这种情况下使用jw

这是我的场景,我生成了一个jwt令牌,并用1小时的TTL将该令牌存储在redis中。 现在我看到大多数教程都使用jwt.verify来验证令牌

我知道他们正在验证令牌是否真实

为什么我需要使用jwt.verify。。为什么我不能使用redis.exists来检查令牌是否真实

他们大多说,我们可以使用jwt的主要功能是不需要使用db来检查用户和过期情况

但在我的场景中,我无法将所有内容都存储在token中。。因此,我使用redis存储带有会话信息的令牌

问题是 1.所以我不应该在这种情况下使用jwt。 2.我可以跳过jwt.verify吗


我是一个节点新手

假设Redis服务器是安全的,并且您自己生成JWT(这里似乎是这样),您不需要验证它。创建后,将其存储在缓存中,稍后再检索。您无需再次验证它,因为您知道它不可能在Redis缓存中被篡改

只有在收到由第三方生成的JWT时,您才需要验证它们是否真实


另一方面,如果您正在将JWT分发给您无法控制的第三方应用程序和客户端,那么您必须确保,一旦您将JWT重放回您身边,就可以通过验证签名(或与存储在Redis缓存中的签名进行二进制比较)和(使用时)来消除对JWT的干扰检查
exp
声明中的到期时间戳。

在没有任何验证的情况下,第三方可能会向您的API发送请求,并且在大多数情况下,请求可能会变成中间人攻击。保存服务器上生成的所有令牌的记录,然后对每个传入请求进行身份验证,这是一种良好的安全做法。

JWTs可以帮助您快速检索有关调用方的信息,而无需访问数据库(redis也是一个数据库)。 当使用客户端应用程序/外部服务使用的JWT时,您必须始终验证它们,以确保您是生成它们的人,并且它们没有被篡改

JWT中存储的常见信息包括用户名、实名、组等。在您的场景中,您可以使用JWT存储一个redis密钥,该密钥保存您想要的信息。可能你总是会点击redis来获取你想要的信息,所以JWTs不会给你的案例增加很多价值,但也可能是这样,你可以使用JWTs编写更智能的代码,只在某些情况下才会点击redis,例如,用户是否有此权利,或者我们是否在redis中存储了有关该用户的信息(JWT令牌中缺少redis密钥)


您是唯一一个能够评估您的场景和jwt的有用性的人,但不要急于放弃它们,因为它们提供了现成的性能/安全改进。

如果您还存储令牌,那么使用jwt有什么好处?这是个问题。.在不使用db的情况下,我需要使用jwt吗?继续讨论在这里,这是不正确的。验证是为了确保没有第三方篡改JWT。因此,即使您生成了JWT,如果它已经超出了您的服务器(客户端浏览器、外部服务等)它必须经过验证。同意,但问题并不意味着它会进入第三方。大多数常见的用例都涉及在手机或浏览器上运行的客户端应用程序。在同一基础设施内跨服务使用的JWT更先进,我从问题中假设他是一个在观看tuto时实现此功能的nodejs新手rials,情况并非如此。您可能是对的,但您应该在回答中说明“第三方收到的令牌”,而不是“第三方生成的令牌”为了让每个人都明白这是一个不同的用例,我添加了文字来描述这一点;Thanks无需在JWT签名时存储令牌,因此可以在检索时进行验证。如果您存储令牌,您将遇到其他麻烦,比如确保对存储的访问安全以及确保其未被泄露/篡改等。该标记可以是easily篡改。因此,我提到的最佳实践。除了已经处理过的已发布漏洞外,您是否有任何参考资料表明JWT签名可以被篡改?除非您通过SSL传输令牌,否则令牌可以很容易地被篡改,作为一个例子。所以我不明白它是如何被篡改的因为不是每个人都有SSL,或者即使他们不是每个人都强制执行SSL,这就是为什么需要验证的原因。SSL不是必需的。如果你篡改JWT验证将失败,这是JWTs的核心功能。实际上,我正在使用hapi.js编写代理服务器。我不允许传递发送给b的cookies和会话信息对于下游服务,我需要生成一个令牌并存储与之相关的信息,然后将该令牌返回到移动和web浏览器,这样他们就不需要处理cookie。我的全部要求在这里解释,