node.js - 我应该将用户信息放入 JWT 令牌中,还是只输入用户的 ID,然后从数据库中选择信息?
问题描述
由于可以更改用户信息,而不是由用户更改,而是由某个管理员或其他人更改,因此令牌用户信息(有效负载)不会更新为数据库中包含的信息。
但是我想尽可能少地处理数据库请求,所以我考虑将用户信息存储在他们的令牌中。
我认为这是错误的,我最好只存储他们的唯一 ID,即 MongoDB 中的索引和时间戳 - 所以用户不会一遍又一遍地拥有相同的令牌 - 他必须从服务器登录。
但后来我需要对 DB 进行查询,我想尽可能少。
我应该只用用户 ID 查询数据库吗?
解决方案
存储 ID 可能是一个更好的主意,因为用户数据可以按照您所说的那样进行修改。JWT 中的大负载也会导致几乎每个网络请求都通过网络发送额外的字节。在大多数情况下,您不需要完整的用户数据,并且 ID 在大多数情况下会很好。所以我建议在 JWT 中存储 ID(也可以是其他字段)而不是所有用户的数据。
推荐阅读
- java - 计算子序列
- python - 在 AWS Lambda 中导入光栅
- sql - Postgres查询时间执行在两个查询之间变化很大
- typescript - Vue 3 + vue-property-decorator 的“超级表达式必须为 null 或函数”
- java - 为什么“class new {”会给出编译错误“identifier is expected”?
- javascript - 如何正确制作自定义复选框组件Vue
- google-chrome - 自定义 Chrome 控制台边栏过滤器
- firebase - flutter list.sort 没有给出结果
- chart.js - Chart.js - 无法使用 display:false 隐藏 PolarArea
- java - 如何在android studio中单击时全屏显示图像