Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 前端客户端上的用户对象_Node.js_Session_Express_Passport.js_Jwt - Fatal编程技术网

Node.js 前端客户端上的用户对象

Node.js 前端客户端上的用户对象,node.js,session,express,passport.js,jwt,Node.js,Session,Express,Passport.js,Jwt,我正在使用Express.js框架在Node.js中开发一个后端API,并使用Passport.js实现JWT身份验证 用户注册,使用用户名和密码登录,并接收在后端生成的json web令牌,然后用于验证进一步的请求 我想要实现的是,在用户登录时,始终在前端显示一条当前用户信息。根据用户或其他用户与API的交互,这些信息可能会频繁更改 这方面的常用技术是什么?我应该将用户对象与来自API的每个响应一起发送,还是应该将其作为JWT中的有效负载发送一次,将其存储在客户端,并在需要时使用单独的请求将其

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

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

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

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


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

JWT在到期之前是有效的。在频繁更改的令牌中包含数据意味着JWT可能无效,但无论如何都会被服务器接受。如果你不想处理黑名单,仔细考虑你要包括哪些数据,并要求其他数据。 但是,如果不在令牌中包含任何用户数据,您就不会从JWT的优点中获益:服务器不需要在每个请求中查询数据库,因为您可以信任JWT中包含的数据


例如,您可以包含<代码> FultNo.<代码>或<代码> DeaFoeSo> < />代码,并考虑包含“代码>角色< /代码>,如果它们不经常更改

,那么,如果我正确理解,我应该将数据存储在不受更改的JWT有效载荷中,例如个人数据。其他事项,即用户在某些活动中获得的一些“积分”,应在单独的请求中查询。你能确认一下吗?是的,就是这样。