使用swr钩:避免首次呼叫以刷新象征
我每X分钟使用SWR进行刷新令牌。所有令牌都存储在本地存储中,并从那里从那里检索到我的应用程序中的令牌状态。之后,刷新令牌立即被调用,这样:
useSWR(
isAuthenticated ? "/api/v1/refresh-token" : null,
async (url) => axios
.post(url, { refreshToken }, {
headers: { Authorization: `Bearer ${token}` }
})
.then((result) => result.data),
{
refreshInterval: x, // <-- every x minutes (ms)
onSuccess: (session) => {
setToken(session.access_token)
setRefreshToken(session.refresh_token)
})
}
)
我想每x分钟调用一次刷新令牌,但要避免第一次重新加载页面(设置doken状态)。
有什么简单的方法吗? (也许使用SWR选项IDK),例如,不用写一个使用效率的使用效率,该效率将布尔canrefresh
在x分钟后添加到true ...我真的不喜欢此解决方案,请使用反调理状态。
有什么明智的建议吗?
I have a refresh token call using swr every x minutes. All tokens are stored in local storage and retrieved from there to the token states in my application. After this, the refresh token is called immediately, like this:
useSWR(
isAuthenticated ? "/api/v1/refresh-token" : null,
async (url) => axios
.post(url, { refreshToken }, {
headers: { Authorization: `Bearer ${token}` }
})
.then((result) => result.data),
{
refreshInterval: x, // <-- every x minutes (ms)
onSuccess: (session) => {
setToken(session.access_token)
setRefreshToken(session.refresh_token)
})
}
)
I want to call the refresh token every x minutes but avoiding the first time when the page is reloaded (token states are set).
Is there any easy way to do it? (maybe with a swr option idk), without for example, write an useEffect who sets a boolean canRefresh
to true after x minutes ... I really don't like this solution, use a counter state neither.
Any smart proposal on this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论