任何操作表单用户都可以不断刷新JsonWebToken



我使用JsonWebtoken在nodejs中的web应用程序中使用express创建一个用于身份验证的访问令牌。

我想定义这个令牌的到期日期,但我不知道它是如何刷新";iat";通过用户执行一些活动!基本上,如果用户在上次活动后的30分钟内执行了一些活动,我希望过期日期重新开始!

jwt.sign({ _userName: userName, _name: name + ' ' + sureName, _role: role.name }, config.get('jwtPrivateKey'),);

这就是我创建令牌的方式。因此,问题是,如果用户在30分钟内有活动,我如何刷新令牌并发送一个新的令牌,这样我们就可以确保用户不需要在30分钟后登录,并且令牌是有效的?!然后,如果用户在30分钟以上没有执行任何任务,我希望令牌过期!

刷新访问令牌的标准方法是创建一个单独的令牌,一个"刷新令牌";(字面意思(。这是一篇博客文章,让你开始,博客文章。

基本思想是将这两个令牌都发送到客户端。访问令牌将在X时间内过期,刷新令牌将在更长的时间内过期。一旦客户端从服务器收到错误(未经验证(,它就会向服务器发送另一个请求,请求新的访问令牌。它在发出此请求时传递刷新令牌。服务器检查刷新令牌是否有效,如果有效,它将向客户端返回一个新的刷新/访问令牌对。重要的是,刷新令牌只能用于获取新的访问令牌,而访问令牌用于从服务器检索数据。

我用这个修复了它,这样我就可以在需要的情况下生成一个新的

app.use(function (message, req, res, next) {
try {
if (typeof message === 'string') {
let userName = req.body._userName;
let name = req.body._name;
let role = req.body._role;
let token = generateToken(userName, name, role);
res.header('z-auth-token', token).status(200).send(message);
} else {
next(message);
}
} catch (e) {
next(e);
}

});

最新更新