【发布时间】:2021-11-10 04:23:20
【问题描述】:
我正在尝试每“t”分钟自动刷新一次访问令牌;我在 useEffect 中(在根组件中)实现了一个 setInterval,它发送一个新访问令牌的请求。当我运行代码时,有时间隔从 onMount 开始,有时根本不运行。
另一个问题是,当我将用户重定向到登录页面时,我尝试清除间隔,即使在 clearInterval 之后它仍会继续运行。
如果有任何其他方式可以在设定的时间间隔内实现 JWT 刷新令牌,我也愿意接受。
useEffect(() => {
async function getRefreshToken() {
const response = await axios.post("http://localhost:3001/refreshToken", {refreshToken}, {withCredentials: true})
if (response.data.redirect) {
clearInterval(refresh)
history.replace(`${response.data.redirect}`)
localStorage.clear()
}}
const refresh = setInterval(getRefreshToken, 4000)
}, [])
【问题讨论】:
标签: javascript reactjs setinterval use-effect