我在节点应用程序中使用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);
当生命周期中发生某些事情时,在User表中会更改某些内容。但是,存储在签名的jwt-payload中的User-object已过时。 我在jwt-library中找不到某种刷新方法。我是否需要重新生成jwt令牌并插入更新的用户对象?这听起来像一个糟糕的解决方案所以我想知道是否有办法简单地刷新jwt-data中的内容。
答案 0 :(得分:1)
要获取新令牌,您需要签署新的有效负载。更改令牌将是:
同样在你的代码中你有:
return res.json(token: token);
我认为是真的:
return res.json({token: token});
或者 - 使用ES2015:
return res.json({token});
但无论如何,您需要将新令牌传递给客户端 - 以您的示例中的响应正文形式或Cookie的形式传递。