我需要验证jwt吗?
Do I need to verify jwt?
所以这是我的场景,我生成了一个jwt令牌并将该令牌存储在具有1小时TTL的redis中。现在我看到大多数教程都使用jwt。验证验证令牌…
我知道他们正在验证令牌是否真实
为什么我需要使用jwt.verify..为什么我不能用redis。存在以检查令牌是否可信。
大多数人都说,我们可以使用jwt的主要特性是不需要使用db来检查用户和过期。
但是在我的场景中,我不能将所有内容存储在令牌中…所以我使用redis来存储带有会话信息的令牌。
问题1. 所以我不应该在这种情况下使用jwt。2. 我可以跳过jwt.verify吗?
我是一个节点新手。
jwt可以帮助您快速检索有关调用者的信息,而无需访问数据库(redis也是一个数据库)。当使用客户端应用程序/外部服务使用的jwt时,您必须始终验证它们,以确保您是生成它们的人,并且它们没有被篡改。
JWT中存储的常用信息有用户名、真实姓名、群组等。在您的场景中,您可以使用JWT来存储保存所需信息的redis键。可能是这样的情况,你总是会点击redis来获取你想要的信息,所以jwt不会给你的情况增加很多价值,但它可能是这样的,你可以使用jwt来编写更智能的代码,只会在某些情况下点击redis。用户是否有这个权限,或者我们是否在redis中存储了关于这个用户的东西(JWT令牌中缺少redis键)您是唯一可以评估您的场景和jwt有用性的人,但不要急于忽视它们,因为它们提供了开箱即用的良好性能/安全性改进。
假设Redis服务器是安全的,并且你自己生成JWT(就像这里的情况一样),你不需要验证它。一旦创建,将它存储在缓存中,稍后检索它,你不需要再次验证它,因为你知道它不可能在Redis缓存中被篡改。
只有在接收到第三方生成的jwt时,你才需要验证它们的真实性。
另一方面,如果你将jwt分发给你无法控制的第三方应用程序和客户端,那么你必须确保一旦你将它们重播给你,它们通过验证签名(或与Redis缓存中存储的一个进行二进制比较)和(在使用时)检查exp
声明中的过期时间戳而未被篡改。
在没有任何验证的情况下,第三方可能会向您的API发送请求,并且在大多数情况下,这些请求可能会变成中间人攻击。保存服务器上生成的所有令牌的记录,然后针对每个传入请求对它们进行身份验证,这是一种良好的安全实践。
- 正在验证8个真/假复选框或复选框中的2个
- 借助asp.net验证或java脚本对多个文本进行验证
- 使用用户名和密码使用node js,AngularJs和JWT进行身份验证
- 如何将 JWT 身份验证与 ACL 混合使用
- 如何在节点中使用 x.509 证书验证 JWT 令牌
- 使用护照-jwt 对节点 API 进行身份验证
- 刷新时的 JWT 角度身份验证
- 使用 jwt 和套接字 io 的身份验证流
- 正在node.js中验证JWT
- 如何将JWT身份验证与Web API集成
- 使用jwt保护api密钥,无需身份验证
- 如何使用Angular JS和JWT验证用户
- 我需要验证jwt吗?
- jsrsign:不能用PEM RSA公钥验证JWT
- 实现无CSRF JWT身份验证的安全方法
- 节点快速通行证(JWT) -验证后回调
- JSON Web令牌(JWT)-验证客户端
- Angular2路由可以使用用户角色参数激活和身份验证(JWT)
- 护照-JWT 验证未触发回调
- 无法验证ID令牌:jwt.Split不是一个函数