token 一过期前端集体 401,怎么做无感续期

常见做法是 access token 设短(15 分钟到 1 小时),另配一个有效期长的 refresh token 只用来换新。前端在响应拦截器里识别 401,判断是「过期」而不是「无效」,就调刷新接口换新 token 再重放原请求。关键点:刷新请求要做单例,避免十个并发 401 同时去刷、把 refresh token 刷废;刷新也失败才跳登录页。

// 拦截器里保证只有一个刷新在跑
if (!refreshPromise) {
  refreshPromise = doRefresh().finally(() => { refreshPromise = null })
}
await refreshPromise
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容