import { useAuthStore } from "~/stores/authStore"; import { useStorage } from "@vueuse/core"; // let lsToken = useStorage("token", "GuestAccess"); // if (lsToken == null || lsToken == "" || lsToken == undefined) // lsToken = "GuestAccess"; export default defineNuxtPlugin((nuxtApp) => { // const { session } = useUserSession(); // const authStore = useAuthStore(); let token = useStorage("id_token", "GuestAccess").value; const api = $fetch.create({ onRequest({ request, options, error }) { options.baseURL = import.meta.env.VITE_BASE_URL + import.meta.env.VITE_API_NAME + options.baseURL; if (token) { const headers = (options.headers ||= {}); if (Array.isArray(headers)) { headers.push(["Authorization", token]); } else if (headers instanceof Headers) { headers.set("Authorization", token); } else { headers.Authorization = token; } } }, async onResponseError({ response }) { if (response.status === 401) { await nuxtApp.runWithContext(() => navigateTo("/login")); } }, onRequestError({ request, options, error }) { // Handle the request errors }, onResponse({ request, response, options }) { // Process the response data // localStorage.setItem('token', response._data.token) }, }); // Expose to useNuxtApp().$api return { provide: { api, }, }; });