From cb8e4fb2ab8adc10484c3fe9edd760ebd25e2a63 Mon Sep 17 00:00:00 2001 From: Alexandr SaVBaD Waltz Date: Tue, 19 Aug 2025 17:48:41 +0300 Subject: [PATCH] Features: 1) Add `default` value and `path` options for `cookieAccess` initialization in `useRefresh`; 2) Implement `nextTick` usage in `useLogin` and `useRefresh` for improved reactivity; 3) Enhance `apollo.ts` with `cookieAccess` object to ensure token consistency; Fixes: 1) Reorder `router.push` in `useLogout` to properly clear cookies before redirection; 2) Resolve issues with inconsistent access token handling during Apollo header configuration; Extra: 1) Cleanup comments in `useRefresh --- storefront/composables/auth/useLogin.ts | 2 ++ storefront/composables/auth/useLogout.ts | 4 ++-- storefront/composables/auth/useRefresh.ts | 15 +++++++++++++-- storefront/plugins/apollo.ts | 6 +++--- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/storefront/composables/auth/useLogin.ts b/storefront/composables/auth/useLogin.ts index 585ecad2..d007d5a9 100644 --- a/storefront/composables/auth/useLogin.ts +++ b/storefront/composables/auth/useLogin.ts @@ -57,6 +57,8 @@ export function useLogin() { userStore.setUser(authData.user); cookieAccess.value = authData.accessToken; + await nextTick(); + appStore.unsetActiveState(); useNotification({ diff --git a/storefront/composables/auth/useLogout.ts b/storefront/composables/auth/useLogout.ts index 872323ce..bbd4fb97 100644 --- a/storefront/composables/auth/useLogout.ts +++ b/storefront/composables/auth/useLogout.ts @@ -22,12 +22,12 @@ export function useLogout() { ); async function logout() { + await router.push({path: '/'}); + userStore.setUser(null); cookieRefresh.value = ''; cookieAccess.value = ''; - - await router.push({path: '/'}); } return { diff --git a/storefront/composables/auth/useRefresh.ts b/storefront/composables/auth/useRefresh.ts index 14de8b87..015a24c6 100644 --- a/storefront/composables/auth/useRefresh.ts +++ b/storefront/composables/auth/useRefresh.ts @@ -10,7 +10,7 @@ import {useUserBaseData} from "~/composables/user"; export function useRefresh() { const { t } = useI18n(); const userStore = useUserStore(); - const { COOKIES_REFRESH_TOKEN_KEY, COOKIES_LOCALE_KEY } = useAppConfig(); + const { COOKIES_REFRESH_TOKEN_KEY, COOKIES_LOCALE_KEY, COOKIES_ACCESS_TOKEN_KEY } = useAppConfig(); const { checkAndRedirect } = useLocaleRedirect(); const { mutate, loading, error } = useMutation(REFRESH); @@ -23,6 +23,13 @@ export function useRefresh() { path: '/' } ); + const cookieAccess = useCookie( + COOKIES_ACCESS_TOKEN_KEY, + { + default: () => '', + path: '/' + } + ); const cookieLocale = useCookie( COOKIES_LOCALE_KEY, { @@ -42,12 +49,13 @@ export function useRefresh() { } userStore.setUser(data.user); + cookieAccess.value = data.accessToken; if (data.user.language !== cookieLocale.value) { await checkAndRedirect(data.user.language); } - cookieRefresh.value = data.refreshToken + cookieRefresh.value = data.refreshToken; // await useWishlist(); // await useOrders({ @@ -55,6 +63,9 @@ export function useRefresh() { // status: "PENDING" // }); // await usePromocodes(); + + await nextTick(); + await useUserBaseData(data.user.email); } diff --git a/storefront/plugins/apollo.ts b/storefront/plugins/apollo.ts index 300b61a5..3975b4a4 100644 --- a/storefront/plugins/apollo.ts +++ b/storefront/plugins/apollo.ts @@ -8,7 +8,7 @@ import { useAppConfig } from '~/composables/config'; export default defineNuxtPlugin((nuxtApp) => { const runtime = useRuntimeConfig(); const localeCookie = useCookie(useAppConfig().COOKIES_LOCALE_KEY); - const token = useCookie(useAppConfig().COOKIES_ACCESS_TOKEN_KEY).value || ''; + const token = useCookie(useAppConfig().COOKIES_ACCESS_TOKEN_KEY); const { $apollo } = nuxtApp as any; const errorLink = onError((err) => { @@ -21,8 +21,8 @@ export default defineNuxtPlugin((nuxtApp) => { 'Accept-Language': localeCookie.value || 'en-gb' }; - if (token) { - hdrs['X-EVIBES-AUTH'] = `Bearer ${token}`; + if (token.value) { + hdrs['X-EVIBES-AUTH'] = `Bearer ${token.value}`; } return { headers: hdrs };