我正在使用Node.js
框架在Express.js
中开发后端API,并使用Passport.js
实现JWT身份验证。
用户注册,使用他们的用户名和密码登录,并接收在后端生成的json Web令牌,然后用于验证进一步的请求。
我想要实现的是在用户登录时始终在前端显示一条当前用户信息。该信息会根据用户或甚至其他用户与API的交互而频繁更改。
这是什么常用技术?我应该使用来自API的每个响应发送用户对象,还是应该将其作为JWT中的有效负载发送一次,将其存储在客户端并根据需要通过单独的请求更新到某个用户API端点?
实际上,JWT有效载荷是否可以用于存储用户对象等内容,是否适用于此?我认为在JWT有效载荷中存储除了某些用户标识符之外的一些重要信息是个坏主意。
答案 0 :(得分:2)
JWT在到期时间之前有效。在令牌中包含频繁更改的数据意味着JWT可能无效,但无论如何都会被您的服务器接受。如果您不想处理黑名单,请仔细考虑您要包含哪些数据,并在其他数据中请求dinamycally。
但是,如果没有将任何用户数据包含在令牌中,您就无法获得JWT的一个优势:服务器不需要在每个请求中查询数据库,因为您可以信任JWT中包含的数据。
E.g。您可以加入fullname
或dateofbirth
,如果不经常更改,请考虑加入roles