diff --git a/src/api/auth.ts b/src/api/auth.ts index 5517a8e..57a975c 100644 --- a/src/api/auth.ts +++ b/src/api/auth.ts @@ -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('/api/auth/login', data) } +let refreshing: Promise> | null + export async function refreshToken(data: TokenRefreshPayload) { - return axios.put('/api/auth/token', data) + if (!refreshing) { + refreshing = axios.put('/api/auth/token', data).finally(() => { + refreshing = null + }) + } + return refreshing }