Javascript 在React/Redux中设置计时器以发送刷新验证令牌的最佳方法

Javascript 在React/Redux中设置计时器以发送刷新验证令牌的最佳方法,javascript,reactjs,express,redux,jwt,Javascript,Reactjs,Express,Redux,Jwt,我正在使用access refresh jwt身份验证流,希望客户端在收到访问令牌后每10分钟发送一个刷新令牌以获取一个新的访问令牌。我还想确保,如果用户关闭笔记本电脑一个小时后返回,也会发送一个新的访问令牌请求。在React/redux中实现此行为的最佳方法是什么,用户将始终拥有有效的访问令牌并无缝地保持其“会话”运行?以实现您可以在每次请求之前有条件地检查令牌的过期情况,而不是设置计时器 这将取决于您与服务器通信的方式,但想法是存储客户端jwt令牌、他的到期和刷新令牌(如果需要,也包括他的到

我正在使用access refresh jwt身份验证流,希望客户端在收到访问令牌后每10分钟发送一个刷新令牌以获取一个新的访问令牌。我还想确保,如果用户关闭笔记本电脑一个小时后返回,也会发送一个新的访问令牌请求。在React/redux中实现此行为的最佳方法是什么,用户将始终拥有有效的访问令牌并无缝地保持其“会话”运行?

以实现您可以在每次请求之前有条件地检查令牌的过期情况,而不是设置计时器

这将取决于您与服务器通信的方式,但想法是存储客户端jwt令牌、他的到期和刷新令牌(如果需要,也包括他的到期),然后在每个需要身份验证的请求之前使用某种中间件:

const authClientMiddleware = (done) => {
    if (new Date(localStorage.getItem('expiration')) <= new Date()) {
        getNewToken(localStorage.getItem('refreshToken')).then(() => done()).catch(() => logout());
    } else {
        done();
    }
}
constauthclientmiddleware=(完成)=>{
if(新日期(localStorage.getItem('expiration'))done()).catch(()=>logout());
}否则{
完成();
}
}