From 0f3197b45614bade32757d6bc9f3d806bf369b9b Mon Sep 17 00:00:00 2001 From: w3bdesign <45217974+w3bdesign@users.noreply.github.com> Date: Sat, 28 Jun 2025 23:53:28 +0200 Subject: [PATCH] Update apollo.js --- plugins/apollo.js | 54 ++++++++++++++--------------------------------- 1 file changed, 16 insertions(+), 38 deletions(-) diff --git a/plugins/apollo.js b/plugins/apollo.js index d902dc32..fb586c65 100644 --- a/plugins/apollo.js +++ b/plugins/apollo.js @@ -7,9 +7,11 @@ import { import { provideApolloClient } from "@vue/apollo-composable"; -const SEVEN_DAYS = 7 * 24 * 60 * 60 * 1000; // 7 days in milliseconds - export default defineNuxtPlugin((nuxtApp) => { + const cookie = useCookie("woo-session", { + maxAge: 1_209_600, // 14 days + sameSite: "lax", + }); const config = useRuntimeConfig(); const httpLink = createHttpLink({ @@ -20,25 +22,13 @@ export default defineNuxtPlugin((nuxtApp) => { /** * If session data exist in local storage, set value as session header. */ - const sessionData = process.client - ? JSON.parse(localStorage.getItem("woo-session")) - : null; - if (sessionData && sessionData.token && sessionData.createdTime) { - const { token, createdTime } = sessionData; - - // Check if the token is older than 7 days - if (Date.now() - createdTime > SEVEN_DAYS) { - // If it is, delete it - localStorage.removeItem("woo-session"); - } else { - // If it's not, use the token - operation.setContext(() => ({ - headers: { - "woocommerce-session": `Session ${token}`, - }, - })); - } + if (process.client && cookie.value) { + operation.setContext(() => ({ + headers: { + "woocommerce-session": `Session ${cookie.value}`, + }, + })); } return forward(operation); @@ -55,18 +45,11 @@ export default defineNuxtPlugin((nuxtApp) => { response: { headers }, } = context; - const session = headers.get("woocommerce-session"); + const session = headers.get("woocommerce-session") || cookie.value; - if (session && process.client) { - if (session === "false") { - // Remove session data if session destroyed. - localStorage.removeItem("woo-session"); - // Update session new data if changed. - } else if (!localStorage.getItem("woo-session")) { - localStorage.setItem( - "woo-session", - JSON.stringify({ token: session, createdTime: Date.now() }) - ); + if (process.client && session) { + if (session !== cookie.value) { + cookie.value = session; } } return response; @@ -102,11 +85,6 @@ export default defineNuxtPlugin((nuxtApp) => { provideApolloClient(apolloClient); nuxtApp.hook("apollo:auth", ({ token }) => { - if (process.client) { - const sessionData = JSON.parse(localStorage.getItem("woo-session")); - if (sessionData && sessionData.token) { - token.value = sessionData.token; - } - } + token.value = cookie.value; }); -}); +}); \ No newline at end of file