diff --git a/src/services/apiClient.js b/src/services/apiClient.js index cd53f97..c0da736 100644 --- a/src/services/apiClient.js +++ b/src/services/apiClient.js @@ -29,21 +29,35 @@ async function refreshAccessToken() { if (isRefreshing) return refreshPromise; isRefreshing = true; - refreshPromise = fetch(`${BASE_URL}/user/auth/refresh`, { + refreshPromise = fetch(`${BASE_URL}/auth/refresh`, { method: 'POST', credentials: 'include', }) + .then(async (res) => { if (!res.ok) throw new Error('Failed to refresh access token'); - return res.json(); - }) - .then((data) => { - authStore.setToken(data.accessToken); + const data = await res.json(); + console.log("Refresh response data: ", data); return data; }) + + .then((data) => { + const token = data.access_token + + if (!token) { + throw new Error('No access_token in refresh response'); + } + + authStore.setToken(data.access_token); + console.log('refreshed token', data.access_token); + + return data; + }) + .catch((error) => { throw error; }) + .finally(() => { isRefreshing = false; refreshPromise = null; @@ -61,11 +75,16 @@ async function request(url, options = {}, isRetry = false) { try { const data = await refreshAccessToken(); + const token = data.access_token; + if (!token) { + throw new Error('Refresh response did not contain access_token'); + } + const newOptions = { ...options, headers: { ...options.headers, - 'Authorization': `Bearer ${data.accessToken}`, + 'Authorization': `Bearer ${token}`, }, }; return await request(url, newOptions, true); diff --git a/src/stores/authStore.js b/src/stores/authStore.js index 264431a..83c7efc 100644 --- a/src/stores/authStore.js +++ b/src/stores/authStore.js @@ -23,7 +23,7 @@ export const useAuthStore = defineStore('auth', () => { const login = async (email, password) => { try { - const response = await apiClient.post('/user/auth/login', { email, password }) + const response = await apiClient.post('/auth/login', { email, password }) const { access_token, user: userData } = response setToken(access_token) @@ -39,7 +39,7 @@ export const useAuthStore = defineStore('auth', () => { setToken(null) user.value = null try { - await apiClient.post('/user/auth/logout') + await apiClient.post('/auth/logout') } catch (error) { console.error('Logout error:', error) }