Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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 更改jwt中的解码值_Node.js_Jwt - Fatal编程技术网

Node.js 更改jwt中的解码值

Node.js 更改jwt中的解码值,node.js,jwt,Node.js,Jwt,Im在节点应用程序中使用json webtoken。当用户登录时,我运行以下代码: var jwt = require('jsonwebtoken'); var payload = {}; payload.User = user; //From User table ni database var token = jwt.sign(payload, 'abcd'); return res.json(token: token); 当生命周期中发生某些事情时,用户表中的某些内容会发生更改。但是,存

Im在节点应用程序中使用json webtoken。当用户登录时,我运行以下代码:

var jwt = require('jsonwebtoken');
var payload = {};
payload.User = user; //From User table ni database
var token = jwt.sign(payload, 'abcd');
return res.json(token: token);
当生命周期中发生某些事情时,用户表中的某些内容会发生更改。但是,存储在签名jwt有效负载中的用户对象已过时。
我在jwt库中找不到某种刷新方法。我是否需要重新生成jwt令牌并插入更新的用户对象?这听起来是个糟糕的解决方案。因此,我想知道是否有一种方法可以简单地刷新jwt数据中的内容。

要获得新的令牌,您需要签署新的有效负载。更改令牌将是:

验证旧令牌 解码有效载荷 更新有效载荷 对有效负载进行签名以获取新令牌 在您的代码中,您还有:

return res.json(token: token);
我认为这是真的:

return res.json({token: token});
或者,使用ES2015:

return res.json({token});
但是在任何情况下,您都需要将新令牌传递给客户机——以响应体的形式,就像您在示例中所做的那样,或者以cookie的形式