为什么我应该使用JWT而不是简单的哈希令牌?

5

如果不需要分享敏感信息,为什么需要JWT?

我可以创建一个令牌列,在数据库中存储并重新调用它,以交叉验证标记并获取用户详细信息。

自定义生成的令牌可以使用密钥进行哈希处理,以避免被解码。既然如此简单,为什么要使用有信息的复杂JWT呢?

1个回答

3
什么情况下需要JWT,因为不会共享敏感信息?
在大多数情况下,具有私有id、过期日期或发行者的主题不能被视为敏感信息。并且令牌必须在双方之间保密,因为拥有令牌就是认证的证明。
在任何情况下,JWT内容都可以使用JWE进行加密。
自定义生成的令牌可以使用密钥哈希,以便其不被解码。当如此简单时,为什么要使用包含信息的复杂JWT呢?
与不透明的令牌系统相比,JWT具有一些优点:
- 无需服务器存储令牌 - 令牌具有过期日期 - 安全地在各方之间共享信息
但也存在缺点:
- 没有撤销机制。不建议设置黑名单,因为这会破坏JWT的状态。 - 增加了令牌大小

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接