refreshToken操作并发控制
This commit is contained in:
parent
a9732790e9
commit
9b3c6083f9
@ -1,4 +1,5 @@
|
||||
import axios from '@/utils/axios'
|
||||
import { type AxiosResponse } from 'axios'
|
||||
|
||||
export interface LoginInputDto {
|
||||
email: string
|
||||
@ -28,6 +29,13 @@ export async function login(data: LoginInputDto) {
|
||||
return axios.post<Token>('/api/auth/login', data)
|
||||
}
|
||||
|
||||
let refreshing: Promise<AxiosResponse<Token>> | null
|
||||
|
||||
export async function refreshToken(data: TokenRefreshPayload) {
|
||||
return axios.put<Token>('/api/auth/token', data)
|
||||
if (!refreshing) {
|
||||
refreshing = axios.put<Token>('/api/auth/token', data).finally(() => {
|
||||
refreshing = null
|
||||
})
|
||||
}
|
||||
return refreshing
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user