@@ -4,7 +4,7 @@ import { useAuthStore } from '@/store/modules/auth';
44import { $t } from '@/locales' ;
55import { localStg } from '@/utils/storage' ;
66import { getServiceBaseURL } from '@/utils/service' ;
7- import { handleRefreshToken , showErrorMsg } from './shared' ;
7+ import { getAuthorization , handleExpiredRequest , showErrorMsg } from './shared' ;
88import type { RequestInstanceState } from './type' ;
99
1010const isHttpProxy = import . meta. env . DEV && import . meta. env . VITE_HTTP_PROXY === 'Y' ;
@@ -19,12 +19,8 @@ export const request = createFlatRequest<App.Service.Response, RequestInstanceSt
1919 } ,
2020 {
2121 async onRequest ( config ) {
22- const { headers } = config ;
23-
24- // set token
25- const token = localStg . get ( 'token' ) ;
26- const Authorization = token ? `Bearer ${ token } ` : null ;
27- Object . assign ( headers , { Authorization } ) ;
22+ const Authorization = getAuthorization ( ) ;
23+ Object . assign ( config . headers , { Authorization } ) ;
2824
2925 return config ;
3026 } ,
@@ -83,15 +79,13 @@ export const request = createFlatRequest<App.Service.Response, RequestInstanceSt
8379 // when the backend response code is in `expiredTokenCodes`, it means the token is expired, and refresh token
8480 // the api `refreshToken` can not return error code in `expiredTokenCodes`, otherwise it will be a dead loop, should return `logoutCodes` or `modalLogoutCodes`
8581 const expiredTokenCodes = import . meta. env . VITE_SERVICE_EXPIRED_TOKEN_CODES ?. split ( ',' ) || [ ] ;
86- if ( expiredTokenCodes . includes ( responseCode ) && ! request . state . isRefreshingToken ) {
87- request . state . isRefreshingToken = true ;
88-
89- const refreshConfig = await handleRefreshToken ( response . config ) ;
90-
91- request . state . isRefreshingToken = false ;
82+ if ( expiredTokenCodes . includes ( responseCode ) ) {
83+ const success = await handleExpiredRequest ( request . state ) ;
84+ if ( success ) {
85+ const Authorization = getAuthorization ( ) ;
86+ Object . assign ( response . config . headers , { Authorization } ) ;
9287
93- if ( refreshConfig ) {
94- return instance . request ( refreshConfig ) as Promise < AxiosResponse > ;
88+ return instance . request ( response . config ) as Promise < AxiosResponse > ;
9589 }
9690 }
9791
0 commit comments