繁体   English   中英

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

[英]Keep refreshing JsonWebToken by any action form user

我使用 JsonWebtoken 在我的 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);
    }
    
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM