前端客户端上的用户对象



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

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

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

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

实际上,JWT有效载荷甚至可以用于存储用户对象之类的东西吗?因为我觉得在JWT有效载荷中存储一些用户标识符以外的重要信息是个坏主意。

JWT有效期至到期时间。在频繁更改的令牌中包含数据意味着JWT可能无效,但无论如何它都会被服务器接受。如果你不想处理黑名单,请仔细考虑你将包括哪些数据,并定期请求其他数据。

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

例如,您可以包括fullnamedateofbirth,如果它们不经常更改,则可以考虑包括roles

最新更新