首页 > 解决方案 > 我应该将用户信息放入 JWT 令牌中,还是只输入用户的 ID,然后从数据库中选择信息?

问题描述

由于可以更改用户信息,而不是由用户更改,而是由某个管理员或其他人更改,因此令牌用户信息(有效负载)不会更新为数据库中包含的信息。

但是我想尽可能少地处理数据库请求,所以我考虑将用户信息存储在他们的令牌中。

我认为这是错误的,我最好只存储他们的唯一 ID,即 MongoDB 中的索引和时间戳 - 所以用户不会一遍又一遍地拥有相同的令牌 - 他必须从服务器登录。

但后来我需要对 DB 进行查询,我想尽可能少。

我应该只用用户 ID 查询数据库吗?

标签: node.jsmongodbperformancejwttoken

解决方案


存储 ID 可能是一个更好的主意,因为用户数据可以按照您所说的那样进行修改。JWT 中的大负载也会导致几乎每个网络请求都通过网络发送额外的字节。在大多数情况下,您不需要完整的用户数据,并且 ID 在大多数情况下会很好。所以我建议在 JWT 中存储 ID(也可以是其他字段)而不是所有用户的数据。


推荐阅读