为啥使用 JWT 而不是在 DB 中存储令牌来授权 Node.js 中的访问令牌?

Posted

技术标签:

【中文标题】为啥使用 JWT 而不是在 DB 中存储令牌来授权 Node.js 中的访问令牌?【英文标题】:Why using JWT rather than store token in DB for authorize an access token in Node.js?为什么使用 JWT 而不是在 DB 中存储令牌来授权 Node.js 中的访问令牌? 【发布时间】:2018-12-18 11:40:17 【问题描述】:

我不太确定 JWT 机制以及为什么它比仅存储和匹配用户的数据库文档中的令牌以授予和访问更好(如果有的话)?

【问题讨论】:

JSON Web Token (JWT) benefits over a database session token的可能重复 【参考方案1】:

JWT 的主要好处是速度,您可以验证令牌以检查用户是否可以访问资源并检索基本用户信息,而无需进行任何数据库查询。

【讨论】:

你是对的。也许我没有得到足够好的解释。为什么我要使用 JWT 插件来签名而不是使用 cyrpto node.js 核心模块并自己签名,为什么我需要更多的中间依赖?我想尽可能少地使用依赖项 因为它更容易使用并且由社区维护。

以上是关于为啥使用 JWT 而不是在 DB 中存储令牌来授权 Node.js 中的访问令牌?的主要内容,如果未能解决你的问题,请参考以下文章

JWT 授权 laravel / angularjs 问题

仅在 JWT 令牌中而不是在 OAuth2 令牌中添加附加信息

如何保护 JWT 令牌

为啥不将 JWT 访问令牌存储在内存中并在 cookie 中刷新令牌?

在基于 Web 浏览器的客户端上存储授权(或 JWT)令牌的位置?

在 .net core api 中存储/验证存储在 HttpOnly cookie 中的 JWT 令牌