@@ -4,7 +4,7 @@ import { getServiceBaseURL } from '@/utils/service'
44import { localStg } from '@/utils/storage'
55import { BACKEND_ERROR_CODE , createFlatRequest , createRequest } from '@sa/axios'
66import type { AxiosResponse } from 'axios'
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