我正在Node.js
中使用Express.js
框架开发后端API,并使用Passport.js
实现JWT身份验证。
用户注册,使用用户名和密码登录,并接收后端生成的json网络令牌,然后用于验证进一步的请求。
我想要实现的是在用户登录时始终在前端显示一条当前用户信息。这些信息会根据用户甚至其他用户与API的交互而频繁更改。
常见的技术是什么?我应该将用户对象与API的每个响应一起发送,还是将其作为JWT中的有效负载发送一次,将其存储在客户端,并根据需要通过对某个用户API端点的单独请求进行更新?
实际上,JWT有效载荷甚至可以用于存储用户对象之类的东西吗?因为我觉得在JWT有效载荷中存储一些用户标识符以外的重要信息是个坏主意。
但是,如果不将任何用户数据包含在令牌中,您就不会利用JWT的优势之一:服务器不需要在每个请求中查询数据库,因为您可以信任JWT中包含的数据。
例如,您可以包括fullname
或dateofbirth
,如果它们不经常更改,则可以考虑包括roles