From a1f6ba1c919f90eeacc74cc9ad8ba295c623b4c4 Mon Sep 17 00:00:00 2001 From: Aleksey Sabilin Date: Fri, 14 Aug 2026 20:23:35 +0300 Subject: [PATCH] feat(auth): call POST /v1/admin/logout before clear storage. Fixes EventHub/EventHubFrontAdmin#43 --- src/api/authApi.ts | 3 +++ src/store/authStore.ts | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/src/api/authApi.ts b/src/api/authApi.ts index 164ba25..9b6de8e 100644 --- a/src/api/authApi.ts +++ b/src/api/authApi.ts @@ -16,6 +16,9 @@ export const authApi = { const { data } = await apiClient.get('/v1/admin/me'); return data; }, + logout: async (refreshToken: string): Promise => { + await apiClient.post('/v1/admin/logout', { refresh_token: refreshToken }); + }, updateMe: async (payload: Partial): Promise => { const { data } = await apiClient.put('/v1/admin/me', payload); return data; diff --git a/src/store/authStore.ts b/src/store/authStore.ts index ac0bfc6..c6c1823 100644 --- a/src/store/authStore.ts +++ b/src/store/authStore.ts @@ -37,6 +37,14 @@ export const useAuthStore = create((set) => ({ }, logout: async () => { + const refresh = localStorage.getItem(REFRESH_TOKEN_KEY); + if (refresh) { + try { + await authApi.logout(refresh); + } catch { + // сеть/401 — всё равно чистим локально + } + } localStorage.removeItem(ACCESS_TOKEN_KEY); localStorage.removeItem(REFRESH_TOKEN_KEY); useMetricsStore.getState().reset();