This repository was archived by the owner on Apr 11, 2026. It is now read-only.
File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -163,16 +163,12 @@ axiosInstance.interceptors.response.use(
163163
164164 const errorCode = getErrorCode ( error ) ;
165165
166- // ZC_ERROR_NEED_LOGOUT: 令牌已失效(过期/吊销/刷新失败等)
167- // 必须清除本地令牌,跳转登录页
168- if ( errorCode === ZC_ERROR . NEED_LOGOUT ) {
169- handleNeedLogout ( ) ;
170- return Promise . reject ( error ) ;
171- }
166+ // ZC_ERROR_NEED_LOGOUT 或 ZC_ERROR_NEED_LOGIN:
167+ // 先尝试刷新令牌,刷新成功则重放请求;仅在刷新失败时才清除登录态并跳转
168+ const needsAuth =
169+ errorCode === ZC_ERROR . NEED_LOGOUT || errorCode === ZC_ERROR . NEED_LOGIN ;
172170
173- // ZC_ERROR_NEED_LOGIN: 未携带令牌
174- // 先尝试刷新令牌,刷新成功则重放请求;失败则清除登录态并跳转
175- if ( errorCode === ZC_ERROR . NEED_LOGIN && ! originalRequest . _retryAfterRefresh ) {
171+ if ( needsAuth && ! originalRequest . _retryAfterRefresh ) {
176172 originalRequest . _retryAfterRefresh = true ;
177173
178174 try {
@@ -181,15 +177,23 @@ axiosInstance.interceptors.response.use(
181177 originalRequest . headers . Authorization = `Bearer ${ newToken } ` ;
182178 return axiosInstance ( originalRequest ) ;
183179 } catch {
184- // 刷新失败,清除登录态并跳转
185- handleNeedLogin ( ) ;
180+ // 刷新令牌失败,清除登录态并跳转
181+ if ( errorCode === ZC_ERROR . NEED_LOGOUT ) {
182+ handleNeedLogout ( ) ;
183+ } else {
184+ handleNeedLogin ( ) ;
185+ }
186186 return Promise . reject ( error ) ;
187187 }
188188 }
189189
190- // 重试过仍然 NEED_LOGIN,直接跳转
191- if ( errorCode === ZC_ERROR . NEED_LOGIN ) {
192- handleNeedLogin ( ) ;
190+ // 重试过仍然需要认证,直接跳转
191+ if ( needsAuth ) {
192+ if ( errorCode === ZC_ERROR . NEED_LOGOUT ) {
193+ handleNeedLogout ( ) ;
194+ } else {
195+ handleNeedLogin ( ) ;
196+ }
193197 return Promise . reject ( error ) ;
194198 }
195199
You can’t perform that action at this time.
0 commit comments