繁体   English   中英

前端客户端的用户对象

[英]User object on client side in front-end

我正在使用Express.js框架在Node.js开发后端 API,并使用Passport.js实现 JWT 身份验证。

用户注册,使用他们的用户名和密码登录并接收在后端生成的 json Web 令牌,然后用于验证进一步的请求。

我想要实现的是在用户登录时始终在前端显​​示一条当前用户信息。该信息会根据用户甚至其他用户与 API 的交互而频繁更改。

这有什么常用的技术? 我应该在来自 API 的每个响应中发送一个用户对象,还是应该将它作为 JWT 中的有效负载发送一次,将其存储在客户端并根据需要使用对某些用户 API 端点的单独请求进行更新?

实际上,JWT 负载甚至可以用于存储诸如用户对象之类的东西,它是为此而设计的吗? 我觉得在 JWT 负载中存储一些重要信息而不是一些用户标识符是一个坏主意。

JWT 在到期之前一直有效。 在令牌中包含频繁更改的数据意味着 JWT 可能无效,但无论如何您的服务器都会接受它。 如果您不想处理黑名单,请仔细考虑您将包含哪些数据并以动态方式请求其他数据。

但是,如果不将任何用户数据包含在令牌中,您就无法利用 JWT 的优势之一:服务器不需要在每个请求中查询数据库,因为您可以信任 JWT 中包含的数据。

例如,您可以包含fullnamedateofbirth并考虑包含不经常更改的roles

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM